ホームページ > バックエンド開発 > PHPチュートリアル > PHP で非常に大きなファイルを効率的に読み取るにはどうすればよいですか?

PHP で非常に大きなファイルを効率的に読み取るにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-22 22:56:12
オリジナル
303 人が閲覧しました

How Can I Efficiently Read Exceedingly Large Files in PHP?

PHP で非常に大きなファイルを読み取る

PHP の fopen を使用して中程度のサイズ (6 MB) のファイルを読み取るのは困難ですが、デフォルト設定で十分です。 。特殊な解決策を検討する前に、あまり明らかではない潜在的なエラーを調査することが重要です。

タイムアウトとメモリ制限を考慮する:

スクリプトのタイムアウト構成を検査します。デフォルトの期間 (通常は約 30 秒) を超えると、ファイル I/O 中に中断が発生する可能性があります。さらに、スクリプトのメモリ使用量を確認して、メモリ制約を示す警告が表示されないようにしてください。大きなファイルを配列に読み取るには、メモリ割り当てを増やす必要がある場合があります。

fgets で最適化します:

前の診断で手がかりが得られない場合は、ファイルを 1 行ずつ読み取る可能性を調べます。 -fgets 関数を使用した行。このアプローチでは、データを段階的に処理するため、メモリ使用量が小さくなります。

$handle = fopen("/tmp/uploadfile.txt", "r") or die("Couldn't get handle");
if ($handle) {
    while (!feof($handle)) {
        $buffer = fgets($handle, 4096);
        // Process buffer here..
    }
    fclose($handle);
}
ログイン後にコピー

その他のエラーのトラブルシューティング:

エラー メッセージ「PHP はエラーをスローしていないようです」エラー、false が返されるだけです」は、さまざまな問題を示している可能性があります:

  • スクリプトの実行ディレクトリに対する相対的なファイル パス ($rawfile) の精度。絶対パスの設定を検討してください。
  • 異常な権限の問題がないか確認してください。スクリプトを実行しているユーザーにターゲット ファイルへの読み取りアクセス権があることを確認してください。

以上がPHP で非常に大きなファイルを効率的に読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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