php7 导到excel为空,PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法

当使用PHP7.1和PHPExcel1.8.1在Linux服务器上导出Excel时遇到ERR_EMPTY_RESPONSE错误。解决方法包括替换旧版PHPExcel为1.8.1版本,调整导出Excel的代码,特别是设置HTTP头和输出部分。成功导出的代码示例中包含了关键的header设置和使用php://output进行保存。另一种解决方案是切换到更新的PhpSpreadsheet库。
摘要由CSDN通过智能技术生成

5268f80b9b1e01f982625ef6fac83ca1.png

PHP在本机可以正常导出Excel,在上Linux就提示ERR_EMPTY_RESPONSE,下面说一下怎么不降版本还能正常导出Excel,解决上面的问题。

使用导出Excel的时候显示错误页面提示如下,这时候发现上传Excel都可以正常读取数据,只是导出的时候不可以。

f591d2b993598d3d48a123389730d264.png

我这里使用的PHP版本是7.1。PHPExcel版本用的是1.8.1。github地址:

https://github.com/PHPOffice/PHPExcel/tree/1.8.1。可以看到作者已经3年没更新过了。

a6af44473b943f6d25a630d8d4d629da.png

将PHPExcel里面的Class内容都拷贝到thinkphp的vendor目录下。重命名为PHPExcel。也就是将之前老的插件换成这个1.8.1的版本。

22b959df37c029cb5ccdc476540130e8.png

具体怎么写Excel和引入插件我就不说了。说下代码方面的写法。

问题其实集中出现在Excel输出这里。(下面是成功导出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');

93d1626401451d5bcec4576d0641821a.png

179b9b9b081755fa317826d1c604434c.png

也可以使用PhpSpreadsheet来读写Excel。

github:https://github.com/PHPOffice/PhpSpreadsheet

文档:https://phpspreadsheet.readthedocs.io/en/develop/

39923285d1a785b4b35440daaf37d8a8.png

1e6821a08632343ec0242ff810bab1dc.png

以上就是关于PHP7导出Excel报ERR_EMPTY_RESPONSE的相关解决步骤和方法,感谢大家的阅读和对脚本之家的支持。

1428d0e076c3959ab11d28a39bc84fab.png

5268f80b9b1e01f982625ef6fac83ca1.png

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值