私はlogs.txt
と呼ばれるテキストファイルを持っています。私はfoo||
で始まる文字列が存在するかどうかをチェックするスクリプトをPHPで作成しようとしています。存在する場合は、特定の文字列に置き換える必要があります。そうでない場合、特定の文字列がファイルの最後に追加されます。PHPで特定の文字列で始まる行を上書きする方法はありますか?
これは私が作ってみましたコードです:
<?php
function replaceInFile($what, $with, $file){
$buffer = "";
$fp = file($file);
foreach($fp as $line){
$buffer .= preg_replace("|".$what."[A-Za-z_.]*|", $what.$with, $line);
}
fclose($fp);
echo $buffer;
file_put_contents($file, $buffer);
}
replaceInFile("foo||", "foo||hello", "logs.txt");
?>
が、それは本当に私がやりたいことはありません。誰かがコードを修正するのに私を助けることができますか?どんな助けもありがとうございます。
fread()fwrite()を調べてください。あなたは現在、ファイル全体を読み書きしていますが、行単位で処理していません。行が見つかると、その行だけに書き込むことができるようにポインタの位置が必要になります。 – Chris
@Chris PHPの初心者にとっても、この例は本当に感謝しています。 :) – WayneXMayersX
https://stackoverflow.com/a/236082/2154871 – Chris