PHPExcel无法运行php 5.2 AppServ

时间:2015-03-17 04:22:53

标签: php phpexcel phpexcelreader

我在Windows机器上的AppServ中使用php 5.2.6,而且PHPExcel似乎不起作用并且不会产生任何错误。我将error_reporting设置为E_ALL。

在我使用php 5.6并使用vagrant / homestead的Linux机器上,相同的代码工作正常。

这是我的代码: http://pastebin.com/6dJC8gaP

我添加了一些回声,看看它到底死了,它似乎死在第9行。我原以为这可能是php 5.2和:: referencing的一个问题,所以我尝试使用call_user_func,它也适用于我的PHP 5.6,但不能在我的PHP 5.2上工作

2 个答案:

答案 0 :(得分:0)

http://php.net/manual/en/function.call-user-func.php

<?php

namespace Foobar;

class Foo {
    static public function test() {
        print "Hello world!\n";
    }
}

call_user_func(__NAMESPACE__ .'\Foo::test'); // As of PHP 5.3.0
call_user_func(array(__NAMESPACE__ .'\Foo', 'test')); // As of PHP 5.3.0

?>

每页:

引用:

在PHP v5.2中,你/可以/使用call_user_func(array($ this,'parent :: SOME_FUNCTION'))。

如果你没有自定义__autoload()函数,那么你就可以了。

如果你有自定义__autoload(),你需要让它'父'知道。类似的东西:

理由:PHP 5.2令人惊讶地试图自动加载一个名为“parent”的类。但是,如果你没有在__autoload()中为'parent'类做任何事情,它就可以正常工作。

答案 1 :(得分:0)

在PHPExcel / Settings.php中有两个对libxml_disable_entity_loader函数的引用。

该功能在php 5.2.11之前不可用,并且它前面的@导致了无声错误。

我按照他们的建议做了,并在function_exist检查中包装了该函数。现在一切都很好。

参考:https://github.com/PHPOffice/PHPExcel/issues/339