str_replace无法使用txt文件PHP

时间:2012-10-09 09:05:17

标签: php string str-replace

str_replace似乎没有像我们期望的那样工作。

我们有一个文本文件,我们正在尝试删除部分文件。

while(!feof($bodyfile)) {

    $content = @fgets($bodyfile);

    $content = str_replace("MARGIN","",$content);

(显然fopen用于打开'r'文件) 奇怪的是,找到并取代M有效吗?但不是保证金..

3 个答案:

答案 0 :(得分:4)

UPDATE:

fgets()函数当时只读取1行,并将该行放在$content变量中,您将覆盖前一行的替换,并反复执行。< / p>

试试这个:

$content = "";
while(!feof($bodyfile)) {

    $line = @fgets($bodyfile);

    $content .= str_replace("MARGIN","",$line);

因此,此代码执行的操作是读取该行并将其分配给$line变量,然后将替换后的字符串添加到$content变量中。


在功能前添加@符号,即表示该功能的suppressing errors
尝试从@中移除@fgets,看看是否有任何错误。

尝试var_dump($content)echo $content查看文件是否正确加载。

请记住,str_replace()区分大小写。

答案 1 :(得分:0)

你可以这样做:

$str=implode("",file('somefile.txt'));
$fp=fopen('somefile.txt','w');
$str=str_replace('MARGIN','',$str);
//OR
//$str=str_ireplace('MARGIN','',$str); for case insensitivity
fwrite($fp,$str,strlen($str));

答案 2 :(得分:0)

刚刚发现该文件是UTF-16字符编码而不是UTF-8,原因有些模糊。已转换,现在我的方法最初有效!

感谢大家的建议