我有一个表单可以提交到下一页。然后在下一页上有一个文本(TXT)文件的include命令。但我想在此文本(TXT)文件中的某些点显示表单数据。
我尝试在txt文件中放置$_POST["firstname"]
和$_POST["surname"]
以显示其名称,但实际文本$_POST["firstname"]
和$_POST["surname"]
出现在网站上而不是这些字段的值。有没有办法在firstname
和surname
出现时显示文本文件中的值?
txt文件的其余部分永远不会改变。只是名字会。我尝试过谷歌搜索,但我发现的是如何写入txt文件或读取整个文件。我想要的只是显示文件并更改这些值。
答案 0 :(得分:2)
这里有几个选项。一种选择是将数据存储在文件文件中,而不是将其存储在PHP文件中。我怀疑你想走这条路,还有另外一个选择。
基本上你要做的就是使用PHP的内置替换函数来删除文本文件中的值,并用上一页中的值替换它们。你可以通过做类似的事情来实现这样的目标:
$search = array("{firstname}", "{surname}");
$replace = array($_POST['firstname'], $_POST['surname']);
$file = file_get_contents("data.txt"); //notice `file_get_contents` instead of include
echo str_replace($search, $replace, $file);
在上文中,我们使用的是file_get_contents
而不是include,只需使用$search
数组替换$replace
数组中找到的所有内容。请注意,您必须在要替换的文本文件中设置值。例如,{firstname}
可能会在整个文件中重复,以便以后可以用“John”替换,而{lastname}
替换为“Doe”。
答案 1 :(得分:0)
我写了一个简单的模板类,可以轻松地完成你想要的工作。
然后像这样使用类:
//包含类文件
include_once('class_simple_template.php);
//实例化模板对象
$ template = new simple_template('/ path / to / directory / containing / template / file /',$ debug = 0);
//设置将包含模板文件中占位符名称及其相关替换值的数组:
$ template_data = array( 'firstname'=> $ _ POST [ '姓名'], 'surname'=> $ _ POST [ '姓'] );
//加载模板文件并使用实际值插入占位符“tokens”:
$ final_result = $ template-> return_parsed_file('your_text_file.txt',$ template_data,$ email = false);
echo $ final_result;
'your_text_file.txt'的内容将使用这样的占位符:
Hello {firstname} {surname},
谢谢{firstname},我们非常感谢....
等等......