购买的是香港空间:
因为我在程序里面做导出excel功能,自己传了个PEARuse控件上去。
每次调用报错重定义:Fatal error: Cannot redeclare _pear_call_destructors() (previously declared in /home/xxx/www/www/wxs/a/PEARuse/PEAR.php:772) in /usr/local/php52/lib/php/PEAR.php on line 777
想必就是空间也有装有一个pear 。
大虾们求救!如果禁掉空间已装好的pear?
单做一个 php 程序,只有
<?phpprint_r(get_included_files());
to:xuzuning
运行的结果是这样的:
Array ( [0] => /home/wingolf/www/www/wxs/a/product/test.php );
补充一句,我在本地电脑运行是正常的,放到空间才出现这个重定义问题。
to:xuzuning
运行的结果是这样的:
Array ( [0] => /home/wingolf/www/www/wxs/a/product/test.php );
这就证明:您使用的空间并没有自动加载 pear
其实 pear 并不需要自动加载。只需把 pear 的路径放到 include_path 中就可以了
你的空间可能就是这样做的
这样的话,你只需上传 PEARuse 目录就可以了
to:xuzuning
运行的结果是这样的:
Array ( [0] => /home/wingolf/www/www/wxs/a/product/test.php );
这就证明:您使用的空间并没有自动加载 pear
其实 pear 并不需要自动加载。只需把 pear 的路径放到 include_path 中就可以了
你的空间可能就是这样做的
这样的话,你只需上传 PEARuse 目录就可以了
那我要如何include我要用的文件:
原来是这样的:require_once '../PEARuse/Spreadsheet/Excel/Writer.php';
现在要怎么做的?
/home/xxx/www/www/wxs/a/PEARuse/PEAR.php:772
/usr/local/php52/lib/php/PEAR.php on line 777
这是你错误信息中提示的,两个 PEAR.php 发生了冲突
你应该删除一个你能删除的
搞定了,直接调系统的:require_once '/usr/local/php52/lib/php/Spreadsheet/Excel/Writer.php';
谢谢xuzuning 的耐心教导。