PHP搜索和替换不使用file_put_contents

时间:2014-05-23 03:07:47

标签: php

这一定是一个非常简单的问题,但我已经尝试了一个小时来解决。我有以下代码:

foreach (glob("*.txt") as $filename)
{
    $file = file_get_contents($filename);
    file_put_contents($filename, str_replace("google","yahoo",$file));
}

test.txt内容为:

Fusce condimentum aliquam velit nec suscipit. 
Cras dapibus libero id ante volutpat laoreet. 
Aliquam luctus erat eget orci egestas, id tincidunt leo aliquam. 
google

出于某种原因,google永远不会被yahoo取代。我的问题是,如何将google替换为yahoo

由于

1 个答案:

答案 0 :(得分:1)

如果您从其他目录发出php命令,那么您的代码无法找到该文件。

me@alfa:/tmp# cat test/test.txt 
Fusce condimentum aliquam velit nec suscipit. 
Cras dapibus libero id ante volutpat laoreet. 
Aliquam luctus erat eget orci egestas, id tincidunt leo aliquam.
google

me@alfa:/tmp# cat test/test.php 
<?php
foreach (glob("*.txt") as $filename)
{
    $file = file_get_contents($filename);
    file_put_contents($filename, str_replace("google","yahoo",$file));
}
?>

me@alfa:/tmp# php test/test.php 

me@alfa:/tmp# cat test/test.txt 
Fusce condimentum aliquam velit nec suscipit. 
Cras dapibus libero id ante volutpat laoreet. 
Aliquam luctus erat eget orci egestas, id tincidunt leo aliquam.
google

将目录更改为php和txt文件的位置使其工作。

me@alfa:/tmp# cd test/

me@alfa:/tmp/test# ls
test.php  test.txt

me@alfa:/tmp/test# cat test.txt 
Fusce condimentum aliquam velit nec suscipit. 
Cras dapibus libero id ante volutpat laoreet. 
Aliquam luctus erat eget orci egestas, id tincidunt leo aliquam.
google

me@alfa:/tmp/test# php test.php 

me@alfa:/tmp/test# cat test.txt 
Fusce condimentum aliquam velit nec suscipit. 
Cras dapibus libero id ante volutpat laoreet. 
Aliquam luctus erat eget orci egestas, id tincidunt leo aliquam.
yahoo