亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

收集另一個 PHP 腳本發送的文件附件,并將它們輸出為 ZIP 文件夾

收集另一個 PHP 腳本發送的文件附件,并將它們輸出為 ZIP 文件夾

PHP
神不在的星期二 2021-06-21 17:05:40
我目前有一個 PHP 腳本,可以根據發票的 ID 號將發票數據導出到 CSV 文件中。該文件是動態生成的,不會保存在服務器上。更具體地說,我正在回顯行,并設置以下標題,以便回顯出現在文件附件中:header('Content-type: text/plain');header("Content-Disposition: attachment; filename=INV${id}.csv");我可以調用腳本的方式是使用:my_script.php?id=123但是現在,我需要編寫一個腳本來獲取給定日期的所有發票,獲取相應的 CSV 文件,并將它們作為 ZIP 文件下載到客戶端。我可以使用我現有的輸出一個文件的腳本來做到這一點嗎?我在想的是從數據庫中獲取所有相關發票 ID 的列表(比如 123、456 和 789),然后遍歷它們并為每個 ID 調用我的腳本,例如:my_script.php?id=123 //then 456, then 789然后將文件結果保存到一個數組中。到目前為止我的嘗試:到目前為止,我嘗試根據此答案將一個結果文件保存為變量,但該變量仍然為空(而已經存在的腳本確實返回了一個非空文件):$file = getScriptOutput("my_script.php?id=123");echo $file;function getScriptOutput($path, $print = FALSE){    ob_start();    if( is_readable($path) && $path )    {        include $path;    }    else    {        return FALSE;    }    if( $print == FALSE )        return ob_get_clean();    else        echo ob_get_clean();}所以,這里有兩個問題:1 - 如何制作文件數組,其中每個文件都是 PHP 腳本的文件結果(附件)?2 - 如何在 PHP 中將所有這些動態文件合并為一個 ZIP 文件?編輯:建議的副本對壓縮部分有幫助,但我需要知道如何獲取 PHP 腳本的文件附件(由于存儲和安全問題,有沒有辦法不將文件保存在服務器上?)。
查看完整描述

2 回答

?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

好吧,我重新考慮了我的計劃,最后我做了以下事情:

對于每個 ID:

  • 閱讀來自 http 響應的附件my_script.php?id=123并將其保存到一個變量中,按照這個答案(使用 cURL 和 setting CURLOPT_BINARYTRANSFER => TRUE

  • 創建一個臨時文件并在其中寫入變量的數據(典型的fopen并且fwrite完成了工作)

  • 根據@DigitalJedi 的回答,將文件添加到 ZIP 存檔中

  • 發送 ZIP 后,使用unlink("filename.csv").


查看完整回答
反對 回復 2021-06-25
  • 2 回答
  • 0 關注
  • 164 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號