ファイル内の文字列の複数の部分を。に置き換えようとしていますfile_put_contents
。基本的に、関数が行うことは、ファイル内の特定のフレーズを検索することです(これは、$new
および$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