PHPExcel не работает php 5.2 AppServ

Я использую php 5.2.6 в AppServ на компьютере с Windows, и PHPExcel, похоже, не работает и не выдает ошибок. У меня error_reporting установлен в E_ALL.

На моей машине с Linux, где я использую php 5.6 и vagrant / homestead, один и тот же код работает просто отлично.

Вот мой код:
http://pastebin.com/6dJC8gaP

Я добавил немного эха, чтобы увидеть, где именно он умирает, и кажется, что он умирает в строке 9. Я подумал, что это может быть проблема с php 5.2 и :: referencing, поэтому я попытался использовать call_user_func, который также работает на моем php 5.6 но не работает на моем php 5.2

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 (массив ($ this, ‘parent :: SOME_FUNCTION’)).

Если у вас нет пользовательской функции __autoload (), вы можете идти.

Если у вас есть пользовательский __autoload (), вы должны сделать это «родительским». Что-то вроде:

Обоснование: PHP 5.2 неожиданно пытается автоматически загрузить класс с именем ‘parent’. Однако, если вы ничего не делаете в __autoload () для класса ‘parent’, он будет работать просто отлично.

0

Другие решения

В PHPExcel / Settings.php есть две ссылки на функцию libxml_disable_entity_loader.

Эта функция недоступна до php 5.2.11, и @ перед ней вызывал тихую ошибку.

Я сделал, как они предложили, и обернул эту функцию в проверках function_exist. Теперь все отлично работает.

Ссылка: https://github.com/PHPOffice/PHPExcel/issues/339

0

По вопросам рекламы [email protected]