PHP在本機可以正常導(dǎo)出Excel,在上Linux就提示ERR_EMPTY_RESPONSE,下面說一下怎么不降版本還能正常導(dǎo)出Excel,解決上面的問題。
使用導(dǎo)出Excel的時候顯示錯誤頁面提示如下,這時候發(fā)現(xiàn)上傳Excel都可以正常讀取數(shù)據(jù),只是導(dǎo)出的時候不可以。
我這里使用的PHP版本是7.1。PHPExcel版本用的是1.8.1。github地址:
https://github.com/PHPOffice/PHPExcel/tree/1.8.1??梢钥吹阶髡咭呀?jīng)3年沒更新過了。
將PHPExcel里面的Class內(nèi)容都拷貝到thinkphp的vendor目錄下。重命名為PHPExcel。也就是將之前老的插件換成這個1.8.1的版本。
具體怎么寫Excel和引入插件我就不說了。說下代碼方面的寫法。
問題其實集中出現(xiàn)在Excel輸出這里。(下面是成功導(dǎo)出Excel的寫法,前面生成Excel的部分略去了)定義頭部后直接輸出。
$filename = "模板文件".date("YmdHis").rand(1000,9999);$filename = iconv("utf-8", "gb2312", $filename);header("Pragma: public");header("Expires: 0");header("Cache-Control:must-revalidate, post-check=0, pre-check=0");header("Content-Type:application/force-download");header("Content-Type:application/vnd.ms-execl");header("Content-Type:application/octet-stream");header("Content-Type:application/download");;header('Content-Disposition:attachment;filename='.$filename.'.xls');header("Content-Transfer-Encoding:binary");$objWriter->save('php://output');
也可以使用PhpSpreadsheet來讀寫Excel。
github:https://github.com/PHPOffice/PhpSpreadsheet
文檔:https://phpspreadsheet.readthedocs.io/en/develop/
以上就是關(guān)于PHP7導(dǎo)出Excel報ERR_EMPTY_RESPONSE的相關(guān)解決步驟和方法,感謝大家的閱讀和對腳本之家的支持。