使用位置标记在文件中写入一行

时间:2013-01-13 16:18:31

标签: php replace

我想从我的php网页上写几行到我服务器上的模板文件,然后下载它的副本。

我将使用包含要填充的表单的main.php。它有changeme1和changeme2的输入字段。

我将使用create.php来读取main.php中的POSTed详细信息并将其写入template.php,其结构如下(但更大更复杂):

<html>
<head>
<title>Test1</title>
</head>

<body>
<p>{changeme1}</p>
<p>{changeme2}</p>

</body>
</html>

有没有办法可以读取这个template.php,将mods变为{changeme1}和{changeme2}并写回可下载的文件?我在考虑寻找和替换?

我已经设法通过使用SO上的其他信息工作的标题下载文件: PHP create file for download without saving on server

但是这个方法回应了html的东西,我需要简单地写出大括号的位置。由于template.php的最终大小回调不合适,因为它意味着每次模板更改后都需要做很多工作,修改适合php回显的模板(希望你能在这里理解我)。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以使用file_get_contents()将文件内容加载到变量中,然后使用str_replace()替换问题中的字符串。

<?php
$search  = array('{changeme1}', '{changeme2}');   // what will be searched for
$replace = array('foo', 'bar');                   // replace it with this

$file = file_get_contents ('filename.tpl');
$new  = str_replace ($search, $replace, $file);

// $new now contains the template file contents with the values replaced, 
// do what you want with it
echo $new;

希望这有帮助。