我正在尝试使用PHP更改.js文件。我可以使用fgets()
逐行获取文件的内容,但无法替换当前来自fgets()
的字符串。
我尝试使用fputs($handle, $read_line)
,但结果有些奇怪。
文件数据
新数据行1
新数据行aaa 2
新数据行3
下面是我的PHP代码,将“ aaa”替换为“ abc”。
$file_path = $dir.'test\folder\folder2\file.js';
if($handle = fopen($file_path, 'r+')) {
while(!feof($handle)) {
$read_line = fgets($handle);
if(strpos($read_line, 'aaa')){
$read_line = str_replace("aaa","abc",$read_line);
}
fputs($handle, $read_line);
}
fclose($handle);
}
预期结果应该是
新数据行1
新数据行abc 2
新数据行3
但是输出是
新数据行1
新数据行1
a
a
请记住,如果从第一个字符中找到搜索字符串,则strpos
将返回0。因此,请使用!==
运算符区分strpos
错误和第零个字符的匹配。
if(false !== strpos($read_line, 'aaa')){
$read_line = str_replace("aaa","abc",$read_line);
}