str_replace不使用txt文件PHP

str_replace不使用txt文件PHP,php,string,str-replace,Php,String,Str Replace,stru_replace似乎没有像我们预期的那样工作 我们有一个文本文件,我们正在尝试删除部分文件 while(!feof($bodyfile)) { $content = @fgets($bodyfile); $content = str_replace("MARGIN","",$content); (显然,fopen用于以“r”的形式打开文件) 奇怪的是,找到并替换M有效吗?但不包括页边距..更新: 函数一次只读取一行,通过将该行放入$content变量中,您将覆盖前一

stru_replace似乎没有像我们预期的那样工作

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

while(!feof($bodyfile)) {

    $content = @fgets($bodyfile);

    $content = str_replace("MARGIN","",$content);
(显然,fopen用于以“r”的形式打开文件) 奇怪的是,找到并替换M有效吗?但不包括页边距..

更新: 函数一次只读取一行,通过将该行放入
$content
变量中,您将覆盖前一行的替换内容,并反复执行

试试这个:

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

    $line = @fgets($bodyfile);

    $content .= str_replace("MARGIN","",$line);
因此,此代码所做的是读取该行并将其分配给
$line
变量,然后将替换的字符串添加到
$content
变量


通过在函数前面添加
@
符号,您就是该函数提供的对象。
尝试从
@fgets
中删除
@
,查看是否有任何错误

尝试
var\u dump($content)
echo$content
查看文件是否正确加载

记住这是区分大小写的。

更新: 函数一次只读取一行,通过将该行放入
$content
变量中,您将覆盖前一行的替换内容,并反复执行

试试这个:

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

    $line = @fgets($bodyfile);

    $content .= str_replace("MARGIN","",$line);
因此,此代码所做的是读取该行并将其分配给
$line
变量,然后将替换的字符串添加到
$content
变量


通过在函数前面添加
@
符号,您就是该函数提供的对象。
尝试从
@fgets
中删除
@
,查看是否有任何错误

尝试
var\u dump($content)
echo$content
查看文件是否正确加载

请记住这是区分大小写的。

您可以执行以下操作:

$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));
你可以做:

$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));

刚刚发现文件是UTF-16字符编码而不是UTF-8,原因不明。转换,现在我的方法原来是有效的


感谢大家的建议

出于一些模糊的原因,我们刚刚发现该文件是UTF-16字符编码而不是UTF-8字符编码。转换,现在我的方法原来是有效的



感谢大家的建议

内容是什么样子的??
str_replace
区分大小写<代码>str_ireplace不是!是的,我们正在尝试查找大写边距,并将其替换为零…$content是一个可以逐行处理的文本文件。为什么有人否决了这个问题?你能补充一下吗。。将内容复制到pastebin。。我想自己测试一下
$content
是什么样子的???
str_replace
区分大小写<代码>str_ireplace不是!是的,我们正在尝试查找大写边距,并将其替换为零…$content是一个可以逐行处理的文本文件。为什么有人否决了这个问题?你能补充一下吗。。将内容复制到pastebin。。我想测试一下myselfvar_dump,它显示了整个过程是一堆字符串。这就是我们想要的。删除@没有任何作用,因为没有要抑制的错误。文件似乎正在加载中。该文件基本上是一个包含html的逐行文本数据文档。我想指出的是,我们也可以用str_替换一个字符,但是当选择多个字符时是不起作用的。。。我认为这是因为文件被逐字读取,但我不认为这是经过一系列调查后的情况breaks@NikolaK.读一行是有效的,一行可以有这么多的文本。。。。在这种情况下,
fgetc
中有很多是无效的……很抱歉,其中一个只是永远循环:(.这可能是一个字符编码问题吗?@30secondstosam这就是为什么我要求你将内容添加到pastbin。.了解我们正在处理的var_dump显示整个事情是一堆字符串。这是我们想要的。删除@没有做任何事,因为没有要抑制的错误。文件看起来加载正常。文件是基本上是一个包含html的逐行文本文档。我想指出的是,我们也可以替换一个字符,但当选择多个字符时是不起作用的…我想这是因为文件是逐字符读取的,但我不认为这是经过一些行调查后的情况breaks@NikolaK.读一行s有效,一行中可以有这么多文本。
fgetc
在这种情况下,很多文本无效。
fgetc
很抱歉,其中一个总是循环:(.这可能是字符编码问题吗?@30secondstosam这就是为什么我要求你将内容添加到pastbin。.明白我们在处理什么吗