パフォーマンスのために、php を使用しないでください。
しかし、あなたが主張し、1 回の置換操作だけが必要な場合は、ファイル全体を読み取り、その行を (文字列として) 置き換えて、書き戻します。つまり、ファイルを別々の行に分割しないでください。必要以上に処理が遅くなります。
これはトリックにすべきです:
$input = file_get_contents($filename_in);
$find = "abc..";
$find_q = preg_quote($find,'/');
$output = preg_replace("/^$find_q(\n|\$)/m","",$input);
file_put_contents($filename_out,$output);
$find
末尾の改行を含め、正確に を含む行を削除します。最後の行が\n
終了していない場合でも、削除されます。
行が存在するかどうかをテストするには、同様の方法を使用します。
$find_q = preg_quote($find,'/');
if ( !preg_match("/^$find_q(\n|\$)/m",$input) )
{
$input .= $find."\n"; // note: this assumes that $input is \n terminated
}