【发布时间】:2017-01-21 14:44:41
【问题描述】:
我在查找特定文本并将其替换为替代文本时遇到了问题。
我在下面仅使用 .rtf 和 .txt 文件测试我的代码。我还确保文件在我的服务器中是可写的。
这是一个偶然的情况,我很好奇我的代码是否错误,或者这只是打开和操作文件的怪异。
<?php
$filelocation = '/tmp/demo.txt';
$firstname = 'John';
$lastname = 'Smith';
$output = file_get_contents($filelocation);
$output = str_replace('[[FIRSTNAME]]', $firstname, $output);
$output = str_replace('[[LASTNAME]]', $lastname, $output);
$output = str_replace('[[TODAY]]', date('F j, Y'), $output);
// rewrite file
file_put_contents($filelocation, $output);
?>
所以,在 demo.txt 文件中,我有大约一整页的文本,其中散布着 [[FIRSTNAME]]、[[LASTNAME]] 和 [[TODAY]]。
查找/替换时时好时坏。到目前为止,[[TODAY]] 总是被正确替换,而名称却不是。
有人遇到过同样的问题吗?
(顺便说一句,我检查了错误日志,到目前为止,打开文件或写入文件都没有返回 PHP 警告/错误)
【问题讨论】:
-
你能在 demo.txt 里面放一些文本,这样我们就可以知道哪里出了问题
-
好点,我会试试....
-
奇怪 - 用一个简单的文本文件尝试了您的代码,它可以按预期工作。不知道你的东西发生了什么。发布演示文件?
-
让我看看我是否明白这一点。您想用
John替换[[FIRSTNAME]]和用Smith替换[[LASTNAME]]? -
没错,这是一个查找和替换方案。
标签: php str-replace