ホームページ > バックエンド開発 > PHPチュートリアル > PHP でテキスト ファイル内の特定の行を置換するにはどうすればよいですか?

PHP でテキスト ファイル内の特定の行を置換するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-13 02:42:02
オリジナル
1065 人が閲覧しました

How Can I Replace Specific Lines in a Text File with PHP?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート