我正在尝试将文件中字符串的多个部分替换为file_put_contents
. 本质上,该函数所做的是在文件中找到一个特定的短语(在$new
and$old
数组中并替换它。
$file_path = "hello.txt";
$file_string = file_get_contents($file_path);
function replace_string_in_file($replace_old, $replace_new) {
global $file_string; global $file_path;
if(is_array($replace_old)) {
for($i = 0; $i < count($replace_old); $i++) {
$replace = str_replace($replace_old[$i], $replace_new[$i], $file_string);
file_put_contents($file_path, $replace); // overwrite
}
}
}
$old = array("hello8", "hello9"); // what to look for
$new = array("hello0", "hello3"); // what to replace with
replace_string_in_file($old, $new);
hello.txt 是:hello8 hello1 hello2 hello9
不幸的是它输出:hello8 hello1 hello2 hello3
因此,当它应该输出 2 时,它只输出 1 更改:
hello0 hello1 hello2 hello3