我正在尝试使用php输出缓冲功能在用户表单提交后创建一个新的html页面。
我在这里研究了这个,并在另一个线程上找到了对这个答案的帮助.... https://stackoverflow.com/a/3775302/7637995。
这个建议对我来说对我的服务器生成一个html页面是有用的。
但是,我需要更进一步,到目前为止,还没有办法做到这一点。
正如我所说...使用该答案中提供的代码,并嵌入我的PHP页面......我能够生成一个新的html页面,我的服务器上的所有表单数据都保持不变,通过设置html页面的“名称”为“Mydocument”,如此......
<?php ob_start(); ?>
/* My 'Form Page' Content Here */
<?php echo '';
file_put_contents('Mydocument.html', ob_get_contents());
?>.
然而......不是必须提前命名“一次性”目的地html页面,而是每次都进行硬编码......我想知道是否有可能自动拥有表单,自动每次提交表单时为新的目标html页面生成一个名称。也许基于来自其中一个文本表单字段的输入数据。
在表单中,例如......我有一个名为'banner'的字段。输入该字段的文本最终成为html页面上文章的标题。
所以...我想知道该'banner'字段中的数据是否也可用于自动生成目标html页面的'name'。
因此,我不必为目的地html页面编写“名称”,例如; 'Mydocument.html'(或其他)......表单会在提交时自动为该html页面创建一个名称。
例如......如果我的标题(输入表格的'banner'字段)是
“巨型小行星撞击地球”
当PHP代码生成时,它可能看起来像这样....
<?php ob_start(); ?>
/* My 'Form Page' Content Here */
<?php echo '';
file_put_contents('Giant%Asteroid%To%Hit%Earth.html'
, ob_get_contents());
?>.
如果有人可以帮助我......我将不胜感激。
答案 0 :(得分:0)
<?php
ob_start();
$headline=str_replace('.', '_', basename($_REQUEST['banner']));
?>
/* My 'Form Page' Content Here */
<?php echo '';
file_put_contents($headline . '.html'
, ob_get_contents());
您应该注意以下几点:basename函数修复了许多安全问题。我已经删除了多余的结束'?&gt;'