PHPExcel 不工作 php 5.2 AppServ

PHPExcel not working php 5.2 AppServ

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

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

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

我添加了一些回声以查看它到底死在哪里,它似乎死在第 9 行。我认为这可能是 php 5.2 和 :: 引用的问题,所以我尝试使用call_user_func,它也适用于我的 php 5.6,但不适用于我的 php 5.2

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' 的 class。但是,如果您在 __autoload() 中不为 'parent' class 执行任何操作,它会正常工作。

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

该功能在 php 5.2.11 之前不可用,它前面的 @ 导致静默错误。

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

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