PHP でリモート ファイルをダウンロードする 3 つの方法をパフォーマンスの観点から検討します。
今日 Excel をエクスポートするとき、エクスポートされた Excel ファイルを頻繁にテストする必要があります。サーバー側で Excel をエクスポート ==> Excel ファイルをローカルにダウンロード ==> して開きます。
リモート ファイルをダウンロードするための PHP ソリューションをリマインダーとして示します。 3 番目の方法では、ファイルが大きすぎる場合のパフォーマンスの問題が考慮されます。
3つのプラン:
-rw-rw-r-- 1 liuyuan liuyuan 470 2月20日 18:12 test1_fopen.php
-rw-rw-r-- 1 liuyuan liuyuan 541 2月20日 18:06 test2_curl.php
-rw-rw-r-- 1 liuyuan liuyuan 547 2月20日 18:12 test3_curl_better.php
オプション 1、小さなファイルに適しています
fopen()/file_get_contents()を直接使用してファイルストリームを取得し、file_put_contents()を使用して書き込みます
リーリー
オプション 2: Curl を通じてコンテンツを取得する
リーリー
1 番目と 2 番目の解決策には問題があります。つまり、ファイルがローカル ディスクに書き込まれる前にメモリに読み込まれるため、ファイルがメモリを超えてクラッシュする可能性があります。
メモリが十分な大きさに設定されている場合でも、これは不必要なオーバーヘッドです
解決策は、CURL に書き込み可能なファイル ストリームを直接与えて、この問題を CURL 自身で解決できるようにすることです (CURLOPT_FILE オプション経由)。そのため、最初にそのファイル ポインターを作成する必要があります。
リーリー
上記のコンテンツでは、パフォーマンスの観点から PHP でリモート ファイルをダウンロードする 3 つの方法を紹介しました。
興味があるかもしれない記事:
phpのリモートファイルクラスのダウンロード(ブレークポイント再開アップロードをサポート) - パスワード機能付きphpとローカル指定ディレクトリの変更を保存するリモートファイルのダウンロード 強化版
- 高性能PHPフレームワーク Symfony2クラシック入門チュートリアル
- phpでのfile_get_contentsとcurlのパフォーマンスの比較分析
- PHPでリモートファイルをローカルストレージにダウンロードする方法
-
http://www.bkjia.com/PHPjc/1086658.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1086658.html技術記事 PHP でリモート ファイルをダウンロードする 3 つの方法をパフォーマンスの観点から検討します。 今日 Excel をエクスポートするとき、エクスポートされた Excel ファイルを頻繁にテストする必要があります。非常に面倒なので、一段落書きたいと思います。 ...