Rumah pembangunan bahagian belakang tutorial php PHP下载远程文件的3种方法以及性能考虑_PHP教程

PHP下载远程文件的3种方法以及性能考虑_PHP教程

Jul 13, 2016 am 10:37 AM
muat turun dokumen jauh

今天在做导出Excel的时候,总是要测试导出的Excel文件,频繁的下载和打开,很麻烦

 
就想着写段代码一气呵成  服务端导出Excel==>下载Excel文件到本地==>并打开的操作。
 
这里摘出PHP下载远端文件的方案,以备忘。其中第3种方法考虑到文件过大时的性能问题。
 
 
 
 
 
3种方案:
 
-rw-rw-r-- 1 liuyuan liuyuan 470 Feb 20 18:12 test1_fopen.php
-rw-rw-r-- 1 liuyuan liuyuan 541 Feb 20 18:06 test2_curl.php
-rw-rw-r-- 1 liuyuan liuyuan 547 Feb 20 18:12 test3_curl_better.php
 
 
 
方案1,适用于小文件
 
直接使用fopen()/file_get_contents()获取文件流并用file_put_contents()写入
 
    //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获取内容
 
 
    //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一个可写的文件流来让它自己来解决这个问题(通过 CURLOPT_FILE选项),这样就要先创建一个文件指针给它。
 
 
    //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);
?>
  

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/735879.htmlTechArticle今天在做导出Excel的时候,总是要测试导出的Excel文件,频繁的下载和打开,很麻烦 就想着写段代码一气呵成 服务端导出Excel==下载Excel文件...
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk memuat turun episod drama pendek Hongguo Bagaimana untuk memuat turun episod drama pendek Hongguo Mar 11, 2024 pm 09:16 PM

Hongguo Short Play bukan sahaja platform untuk menonton drama pendek, tetapi juga khazanah kandungan yang kaya, termasuk novel dan kandungan menarik yang lain. Ini tidak dinafikan satu kejutan besar bagi ramai pengguna yang suka membaca. Walau bagaimanapun, ramai pengguna masih tidak tahu cara memuat turun dan menonton novel ini dalam Hongguo Short Play Dalam berikut, editor tapak ini akan memberikan anda langkah memuat turun terperinci, dengan harapan dapat membantu semua Rakan Kongsi yang memerlukan. Bagaimana untuk memuat turun dan menonton drama pendek Hongguo Jawapan: [Main pendek Hongguo] - [Buku audio] - [Artikel] - [Muat turun]. Langkah-langkah khusus: 1. Mula-mula buka perisian Drama Pendek Hongguo, masukkan halaman utama dan klik butang [Dengar Buku] di bahagian atas halaman 2. Kemudian pada halaman novel kita boleh melihat banyak kandungan artikel, di sini

Apakah yang perlu saya lakukan jika saya memuat turun kertas dinding orang lain selepas log masuk ke akaun lain pada mesin kertas dinding? Apakah yang perlu saya lakukan jika saya memuat turun kertas dinding orang lain selepas log masuk ke akaun lain pada mesin kertas dinding? Mar 19, 2024 pm 02:00 PM

Apabila anda log masuk ke akaun stim orang lain pada komputer anda, dan akaun orang lain itu kebetulan mempunyai perisian kertas dinding, stim akan memuat turun kertas dinding yang dilanggan ke akaun orang lain secara automatik selepas bertukar kembali ke akaun anda sendiri Pengguna boleh menyelesaikan masalah ini dengan mematikan penyegerakan awan wap. Apa yang perlu dilakukan jika enjin kertas dinding memuat turun kertas dinding orang lain selepas log masuk ke akaun lain 1. Log masuk ke akaun stim anda sendiri, cari penyegerakan awan dalam tetapan, dan matikan penyegerakan awan stim. 2. Log masuk ke akaun Steam orang lain yang anda log masuk sebelum ini, buka Bengkel Kreatif Kertas Dinding, cari kandungan langganan, dan kemudian batalkan semua langganan. (Sekiranya anda tidak dapat mencari kertas dinding pada masa hadapan, anda boleh mengumpulnya dahulu dan kemudian membatalkan langganan) 3. Tukar semula ke wap anda sendiri

Bagaimana untuk memuat turun pautan bermula dengan 115://? Muat turun pengenalan kaedah Bagaimana untuk memuat turun pautan bermula dengan 115://? Muat turun pengenalan kaedah Mar 14, 2024 am 11:58 AM

Baru-baru ini, ramai pengguna bertanya kepada editor, bagaimana untuk memuat turun pautan bermula dengan 115://? Jika anda ingin memuat turun pautan bermula dengan 115://, anda perlu menggunakan pelayar 115 Selepas anda memuat turun pelayar 115, mari lihat tutorial muat turun yang disusun oleh editor di bawah. Pengenalan kepada cara memuat turun pautan bermula dengan 115:// 1. Log masuk ke 115.com, muat turun dan pasang pelayar 115. 2. Masukkan: chrome://extensions/ dalam bar alamat pelayar 115, masukkan pusat sambungan, cari Tampermonkey dan pasang pemalam yang sepadan. 3. Masukkan dalam bar alamat pelayar 115: Skrip Grease Monkey: https://greasyfork.org/en/

Bagaimana untuk memindahkan fail dari Cakera Awan Quark ke Cakera Awan Baidu? Bagaimana untuk memindahkan fail dari Cakera Awan Quark ke Cakera Awan Baidu? Mar 14, 2024 pm 02:07 PM

Quark Netdisk dan Baidu Netdisk pada masa ini merupakan perisian Netdisk yang paling biasa digunakan untuk menyimpan fail Jika anda ingin menyimpan fail dalam Quark Netdisk ke Baidu Netdisk, bagaimana anda melakukannya? Dalam isu ini, editor telah menyusun langkah tutorial untuk memindahkan fail dari komputer Quark Network Disk ke Baidu Network Disk Mari kita lihat cara mengendalikannya. Bagaimana untuk menyimpan fail dari Cakera Rangkaian Quark ke Cakera Rangkaian Baidu? Untuk memindahkan fail daripada Cakera Rangkaian Quark ke Cakera Rangkaian Baidu, anda perlu memuat turun fail yang diperlukan terlebih dahulu daripada Cakera Rangkaian Quark, kemudian pilih folder sasaran dalam klien Cakera Rangkaian Baidu dan bukanya. Kemudian, seret dan lepaskan fail yang dimuat turun daripada Cakera Awan Quark ke dalam folder yang dibuka oleh klien Cakera Awan Baidu, atau gunakan fungsi muat naik untuk menambah fail pada Cakera Awan Baidu. Pastikan anda menyemak sama ada fail telah berjaya dipindahkan dalam Cakera Awan Baidu selepas muat naik selesai. Itu sahaja

Bagaimana untuk memuat turun cakera rangkaian Quark ke setempat? Bagaimana untuk menyimpan fail yang dimuat turun dari Quark Network Disk kembali ke komputer tempatan Bagaimana untuk memuat turun cakera rangkaian Quark ke setempat? Bagaimana untuk menyimpan fail yang dimuat turun dari Quark Network Disk kembali ke komputer tempatan Mar 13, 2024 pm 08:31 PM

Ramai pengguna perlu memuat turun fail apabila menggunakan Cakera Rangkaian Quark, tetapi kami ingin menyimpannya secara tempatan, jadi bagaimana untuk menyediakannya? Biarkan tapak ini memperkenalkan kepada pengguna secara terperinci cara menyimpan fail yang dimuat turun dari Quark Network Disk kembali ke komputer tempatan. Cara menyimpan fail yang dimuat turun dari cakera rangkaian Quark kembali ke komputer tempatan anda 1. Buka Quark, log masuk ke akaun anda dan klik ikon senarai. 2. Selepas mengklik ikon, pilih cakera rangkaian. 3. Selepas memasukkan Quark Network Disk, klik My Files. 4. Selepas memasukkan Fail Saya, pilih fail yang anda ingin muat turun dan klik ikon tiga titik. 5. Semak fail yang anda ingin muat turun dan klik Muat turun.

Apa yang perlu dilakukan jika kod ralat 0x80004005 muncul Editor akan mengajar anda cara menyelesaikan kod ralat 0x80004005. Apa yang perlu dilakukan jika kod ralat 0x80004005 muncul Editor akan mengajar anda cara menyelesaikan kod ralat 0x80004005. Mar 21, 2024 pm 09:17 PM

Apabila memadam atau menyahmampat folder pada komputer anda, kadangkala kotak dialog segera "Ralat 0x80004005: Ralat Tidak Ditentukan" akan muncul Bagaimana anda harus menyelesaikan situasi ini? Sebenarnya terdapat banyak sebab mengapa kod ralat 0x80004005 digesa, tetapi kebanyakannya disebabkan oleh virus. Kami boleh mendaftarkan semula dll untuk menyelesaikan masalah tersebut . Sesetengah pengguna digesa dengan kod ralat 0X80004005 apabila menggunakan komputer mereka Ralat 0x80004005 disebabkan terutamanya oleh komputer tidak mendaftarkan fail perpustakaan pautan dinamik tertentu dengan betul, atau oleh tembok api yang tidak membenarkan sambungan HTTPS antara komputer dan Internet. Jadi bagaimana pula

Pengenalan kepada cara memuat turun dan memasang permainan superpeople Pengenalan kepada cara memuat turun dan memasang permainan superpeople Mar 30, 2024 pm 04:01 PM

Permainan superpeople boleh dimuat turun melalui klien wap Saiz permainan ini ialah kira-kira 28G Ia biasanya mengambil masa satu setengah jam untuk memuat turun dan memasang Berikut ialah tutorial muat turun dan pemasangan khusus untuk anda. Kaedah baharu untuk memohon ujian tertutup global 1) Cari "SUPERPEOPLE" dalam kedai Steam (muat turun klien stim) 2) Klik "Minta akses kepada ujian tertutup SUPERPEOPLE" di bahagian bawah halaman kedai "SUPERPEOPLE" 3) Selepas mengklik butang minta butang akses, Permainan "SUPERPEOPLECBT" boleh disahkan dalam perpustakaan Steam 4) Klik butang pasang dalam "SUPERPEOPLECBT" dan muat turun

Apakah fail hiberfil.sys? Bolehkah hiberfil.sys dipadamkan? Apakah fail hiberfil.sys? Bolehkah hiberfil.sys dipadamkan? Mar 15, 2024 am 09:49 AM

Baru-baru ini, ramai netizen bertanya kepada editor, apakah itu fail hiberfil.sys? Bolehkah hiberfil.sys mengambil banyak ruang pemacu C dan dipadamkan? Editor boleh memberitahu anda bahawa fail hiberfil.sys boleh dipadamkan. Mari kita lihat butiran di bawah. hiberfil.sys ialah fail tersembunyi dalam sistem Windows dan juga fail hibernasi sistem. Ia biasanya disimpan dalam direktori akar pemacu C, dan saiznya bersamaan dengan saiz memori yang dipasang sistem. Fail ini digunakan apabila komputer sedang hibernasi dan mengandungi data memori sistem semasa supaya ia boleh dipulihkan dengan cepat kepada keadaan sebelumnya semasa pemulihan. Oleh kerana saiznya adalah sama dengan kapasiti memori, ia mungkin mengambil jumlah ruang cakera keras yang lebih besar. hiber

See all articles