リモート ファイルをダウンロードするための PHP ソリューションをリマインダーとして示します。 3 番目の方法では、ファイルが大きすぎる場合のパフォーマンスの問題が考慮されます。
//baidu wenku 形式の xls ファイルの例
$url = 'http://bs.baidu.com/wenku4/%2Fe43e6732eba84a316af36c5c67a7c6d6?sign=MBOT:y1jXjmMD4FchJHFHIGN4z:lfZAx1Nrf44aCyD6tJqJ2FhosLY%3D&time=1392893977 &response- content-disposition=添付ファイル;%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 を通じてコンテンツを取得する
//baidu wenku 形式の xls ファイルの例
$url = 'http://bs.baidu.com/wenku4/%2Fe43e6732eba84a316af36c5c67a7c6d6?sign=MBOT:y1jXjmMD4FchJHFHIGN4z:lfZAx1Nrf44aCyD6tJqJ2FhosLY%3D&time=1392893977 &response- content-disposition=添付ファイル;%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 オプション経由)。そのため、最初にそのファイル ポインターを作成する必要があります。
//baidu wenku 形式の xls ファイルの例
$url = 'http://bs.baidu.com/wenku4/%2Fe43e6732eba84a316af36c5c67a7c6d6?sign=MBOT:y1jXjmMD4FchJHFHIGN4z:lfZAx1Nrf44aCyD6tJqJ2FhosLY%3D&time=1392893977 &response- content-disposition=添付ファイル;%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/735879.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/735879.html技術記事現在 Excel をエクスポートする場合、頻繁にダウンロードして開くエクスポートされた Excel ファイルをテストする必要があります。サーバー側で Excel を一度にエクスポートする == Excel ファイルをダウンロードするコードを記述するのは非常に面倒です。 .