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

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-16 06:57:02774ブラウズ

How Can I Replace a Specific Line in a Text File Based on a Word?

Word に基づいたテキスト ファイルの特定の行の置換

テキスト ファイルの操作では、特定の行を置換する必要がある状況が発生します。特定の単語の存在に基づくテキスト行が重要になります。この必要性は、さまざまなシナリオに適したさまざまなアプローチを使用して対処できます。

小さなファイルの処理

メモリに無理なく収まる小さなテキスト ファイルの場合、便利な方法です。ファイル全体を行の配列に読み取る必要があります。この配列は、カスタマイズされた関数を使用して処理され、指定された単語を含む行を効率的に置き換えることができます。

PHP での実装例は次のとおりです。

$data = file('myfile'); // reads an array of lines
function replace_a_line($data) {
   if (stristr($data, 'certain word')) {
     return "replacement line!\n";
   }
   return $data;
}
$data = array_map('replace_a_line', $data);
file_put_contents('myfile', $data);

大きなファイルの処理

使用可能なメモリ制限を超える大きなテキスト ファイルの場合は、より効率的なアプローチが必要です。この方法では、ファイルを 1 行ずつ読み取り、目的の単語の存在を確認し、それを代替ファイルに置き換えます。置換が行われると、元のファイルは変更された内容で上書きされます。

次の PHP 実装を検討してください。

$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);
// might as well not overwrite the file if we didn't replace anything
if ($replaced) 
{
  rename('myfile.tmp', 'myfile');
} else {
  unlink('myfile.tmp');
}

ファイル サイズとリソースの制約に応じて、これらのアプローチは効果的な方法を提供します。単語の存在に基づいてテキスト ファイル内の特定の行を置き換えるソリューション。

以上がWord に基づいたテキスト ファイル内の特定の行を置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。