PHP を使用したテキスト ファイル内の特定の行の置換
テキスト ファイル内で、特定の単語の存在に基づいて行を選択的に置換することは、共通の要件です。この点に関して、PHP では、このタスクを達成するためのいくつかのアプローチが提供されています。
小さいファイルに対する配列関数の使用 (メモリに収まる)
メモリに収まるテキスト ファイルの場合、次のアプローチを使用できます。
$data = file('myfile'); // Array of lines function replace_a_line($data) { return (stristr($data, 'certain word')) ? "replacement line!\n" : $data; } $data = array_map('replace_a_line', $data); file_put_contents('myfile', $data);
PHP バージョンの Lambda 関数 > 5.3.0 では簡潔なバージョンが可能です:
$data = array_map(function($data) { return (stristr($data, 'certain word')) ? "replacement line\n" : $data; }, $data);
大きなファイルの場合 (メモリを大量に使用)
大きなファイルの場合、以下のアプローチは行ごとに反復されます。ファイル全体をメモリにロードせずに次の行を実行します:
$reading = fopen('myfile', 'r'); $writing = fopen('myfile.tmp', 'w'); $replaced = false; while (!feof($reading)) { $line = fgets($reading); if (stristr($line, 'certain word')) { $line = "replacement line!\n"; $replaced = true; } fputs($writing, $line); } fclose($reading); fclose($writing); if ($replaced) rename('myfile.tmp', 'myfile'); else unlink('myfile.tmp');
これらのテクニックを実装すると、単語の一致に基づいてテキスト ファイル内の特定の行を効果的に置き換えることができます。
以上がPHP でテキスト ファイル内の特定の行を置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。