ホームページ  >  記事  >  バックエンド開発  >  パフォーマンスの観点から PHP でリモート ファイルをダウンロードする 3 つの方法、_PHP チュートリアル

パフォーマンスの観点から PHP でリモート ファイルをダウンロードする 3 つの方法、_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-12 09:01:58887ブラウズ

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.comtru​​ehttp://www.bkjia.com/PHPjc/1086658.html技術記事 PHP でリモート ファイルをダウンロードする 3 つの方法をパフォーマンスの観点から検討します。 今日 Excel をエクスポートするとき、エクスポートされた Excel ファイルを頻繁にテストする必要があります。非常に面倒なので、一段落書きたいと思います。 ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。