目次
PHP でリモート ファイルをダウンロードする 3 つの方法とパフォーマンスの考慮事項、
ホームページ バックエンド開発 PHPチュートリアル PHP でリモート ファイルをダウンロードする 3 つの方法とパフォーマンスに関する考慮事項、_PHP チュートリアル

PHP でリモート ファイルをダウンロードする 3 つの方法とパフォーマンスに関する考慮事項、_PHP チュートリアル

Jul 12, 2016 am 09:02 AM
php ダウンロード パフォーマンス 書類 方法 考慮する リモートで

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()を使用して書き込みます

1 2 3 4 5 6 7 8 9 <?php //an example xls file form baidu wenku $url = 'http://bs.baidu.com/wenku4/%2Fe43e6732eba84a316af36c5c67a7c6d6?sign=MBOT:y1jXjmMD4FchJHFHIGN4z:lfZAx1Nrf44aCyD6tJqJ2FhosLY%3D&time=1392893977&response-content-disposition=attachment;%20filename=%22php%BA%AF%CA%FD.xls%22&response-content-type=application%2foctet-stream'; $fp_input = fopen($url, 'r'); file_put_contents('./test.xls', $fp_input); exec("libreoffice ./test.xls", $out, $status); ?>

オプション 2: Curl を通じてコン​​テンツを取得する

1 2 3 4 5 6 7 8 9 10 11 <?php //an example xls file form baidu wenku $url = 'http://bs.baidu.com/wenku4/%2Fe43e6732eba84a316af36c5c67a7c6d6?sign=MBOT:y1jXjmMD4FchJHFHIGN4z:lfZAx1Nrf44aCyD6tJqJ2FhosLY%3D&time=1392893977&response-content-disposition=attachment;%20filename=%22php%BA%AF%CA%FD.xls%22&response-content-type=application%2foctet-stream'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); file_put_contents('./test.xls', curl_exec($ch)); curl_close($ch); exec("libreoffice ./test.xls", $out, $status); ?>

1 番目と 2 番目の解決策には問題があります。つまり、ファイルがローカル ディスクに書き込まれる前にメモリに読み込まれるため、ファイルがメモリを超えてクラッシュする可能性があります。

メモリが十分な大きさに設定されている場合でも、これは不必要なオーバーヘッドです

解決策は、CURL に書き込み可能なファイル ストリームを直接与えて、この問題を CURL 自身で解決できるようにすることです (CURLOPT_FILE オプション経由)。そのため、最初にそのファイル ポインターを作成する必要があります。

1 2 3 4 5 6 7 8 9 10 11 12
<?php //an example xls file form baidu wenku $url = 'http://bs.baidu.com/wenku4/%2Fe43e6732eba84a316af36c5c67a7c6d6?sign=MBOT:y1jXjmMD4FchJHFHIGN4z:lfZAx1Nrf44aCyD6tJqJ2FhosLY%3D&time=1392893977&response-content-disposition=attachment;%20filename=%22php%BA%AF%CA%FD.xls%22&response-content-type=application%2foctet-stream'; $fp_output = fopen('./test.xls', 'w'); $ch = curl_init($url); curl_setopt($ch, CURLOPT_FILE, $fp_output); curl_exec($ch); curl_close($ch); exec("libreoffice ./test.xls", $out, $status); ?>

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

See all articles