PHP でファイルに文字列が含まれているかどうかを確認する方法
ファイル内に特定の文字列が存在するかどうかを確認するには、
元のコード:
提供されたコードは、変数 $id で示されるファイル内の文字列の存在をチェックしようとします。 、ファイルを 1 行ずつ読み取ります。ただし、while ループ内の条件 (strpos($buffer, $id) === false) は文字列の不在を誤ってチェックしており、目的の結果の論理否定につながります。
改善された解決策:
この状況を修正するには、ファイル全体を文字列に読み取る file_get_contents() 関数を使用してコードを簡素化できます。次に、strpos() 関数を使用して、この文字列内に $id 文字列が存在するかどうかを確認できます。
<code class="php">if( strpos(file_get_contents("./uuids.txt"),$_GET['id']) !== false) { // do stuff }</code>
このアプローチを使用すると、ファイルを 1 行ずつ繰り返す必要がなくなります。これにより、特に大きなファイルの場合、時間とメモリを節約できます。
代替方法 (非常に大きなファイルの場合):
過度に大きなファイルの場合は、ファイル操作に依存して検索します。文字列はパフォーマンス上の問題を引き起こす可能性があります。代わりに、grep コマンドを利用することもできます。
<code class="php">if( exec('grep '.escapeshellarg($_GET['id']).' ./uuids.txt')) { // do stuff }</code>
このアプローチでは、システムの grep ユーティリティを使用してファイル内の文字列を検索し、PHP スクリプト自体の作業負荷を軽減しながら、同等の効率を実現します。
以上がPHP でファイル内の文字列を効率的にチェックするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。