在PHP里面用PHPExcel生成excel文件时很方便,但是我在这里却碰到了问题。
如果在a.php里面使用了include,如下
include ($_SERVER['DOCUMENT_ROOT'].'/common/acl_phpexcel.php');
include ($_SERVER['DOCUMENT_ROOT'].'/common/conn.php');
require_once($_SERVER['DOCUMENT_ROOT'].'/resources/PHPExcel/PHPExcel.php');
require_once($_SERVER['DOCUMENT_ROOT'].'/resources/PHPExcel/PHPExcel/Writer/Excel2007.php');
就打不开,把acl_phpexcel.php和conn.php的代码写在a.php才可以打开
不知道是线上环境配置问题还是本身就有这个BUG。
已经按照官网http://phpexcel.codeplex.com/wikipage?title=Requirements&referringTitle=Home修改(或不修改)php.ini配置,线上环境生成的excel都不能打开,说格式错误,但是自己虚拟机上的都正常(而且没有按照官网的环境要求配置)。
初步怀疑是线上和线下环境的问题,但对比了配置文件发现,就只有几个地方不一样。环境有区别的地方:
排除了 nfs samba挂载的影响
排除了 nginx 配置不同的影响
php 版本,编译参数一样,只是 php.ini 有部分配置不同线上
expose_php = Off
cgi.fix_pathinfo=0
extension = "gettext.so" (无改配置)虚拟机
expose_php = On
cgi.fix_pathinfo=1
extension = "gettext.so"实在是不能把数据库连接写在每一个单独的文件里面啊
如果在a.php里面使用了include,如下
include ($_SERVER['DOCUMENT_ROOT'].'/common/acl_phpexcel.php');
include ($_SERVER['DOCUMENT_ROOT'].'/common/conn.php');
require_once($_SERVER['DOCUMENT_ROOT'].'/resources/PHPExcel/PHPExcel.php');
require_once($_SERVER['DOCUMENT_ROOT'].'/resources/PHPExcel/PHPExcel/Writer/Excel2007.php');
就打不开,把acl_phpexcel.php和conn.php的代码写在a.php才可以打开
不知道是线上环境配置问题还是本身就有这个BUG。
已经按照官网http://phpexcel.codeplex.com/wikipage?title=Requirements&referringTitle=Home修改(或不修改)php.ini配置,线上环境生成的excel都不能打开,说格式错误,但是自己虚拟机上的都正常(而且没有按照官网的环境要求配置)。
初步怀疑是线上和线下环境的问题,但对比了配置文件发现,就只有几个地方不一样。环境有区别的地方:
排除了 nfs samba挂载的影响
排除了 nginx 配置不同的影响
php 版本,编译参数一样,只是 php.ini 有部分配置不同线上
expose_php = Off
cgi.fix_pathinfo=0
extension = "gettext.so" (无改配置)虚拟机
expose_php = On
cgi.fix_pathinfo=1
extension = "gettext.so"实在是不能把数据库连接写在每一个单独的文件里面啊
PHPExcel 使用了 spl_autoload 自动加载类如果在你的程序中破坏了这一功能,出现问题就是很自然的了