Ошибка смещения неинициализированной строки из скрипта импорта PHP - PullRequest
4 голосов
/ 09 октября 2008

У меня есть сценарий импорта из Excel как часть CMS, которая ранее работала без проблем.

Мой провайдер общего хостинга недавно обновил свою инфраструктуру, включая PHP с 5.1 до 5.2.6, и теперь скрипт возвращает «Смещение неинициализированной строки: -XXX в /path/scriptname.php в строке 27» (XXX означает уменьшение числа с 512 и, конечно, /path/scriptname.php - полный путь к рассматриваемому скрипту).

Возвращает эту ошибку для каждой строки файла Excel. Строка 27 - это просто возврат из функции, которая является первой точкой, в которой обрабатываются импортированные данные:

function GetInt4d($data, $pos) {
        return ord($data[$pos]) | (ord($data[$pos+1]) << 8) | (ord($data[$pos+2]) << 16) | (ord($data[$pos+3]) << 24); 
}

В конечном итоге это приводит к «Фатальной ошибке: допустимый объем памяти 47185920 байт исчерпан (попытка выделить 71 байт) в /path/scriptname.php в строке 133».

Нет ничего полезного в журналах ошибок Apache. Я в тупике. У кого-нибудь есть идеи хотя бы где искать? Даже знание того, может ли это быть чем-то в моем скрипте или что-то связанное с обновлением, было бы полезно. У меня была другая проблема с другим сайтом на том же провайдере, из-за которого (после обновления) не удалось записать сеансы в каталог tmp (после устранения), но я почти уверен, что это не так (?).

РЕДАКТИРОВАТЬ: Поскольку выяснилось, что ответ был связан с тем, что версия синтаксического анализатора каким-то образом несовместима с PHP 5.2.6, я подумал, что кому-то может пригодиться, что рассматриваемый синтаксический анализатор Электронная таблица Excel Reader .

Ответы [ 3 ]

3 голосов
/ 03 февраля 2009
2 голосов
/ 10 октября 2008

Смещение неинициализированной строки:

... означает, что $data не является массивом.

1 голос
/ 10 октября 2008

Спасибо за ввод, ситуация «разрешилась» благодаря тому, что я нашел более свежую версию библиотеки анализа, которую я использовал. Я думаю, что проблема была связана с различием между версиями PHP, хотя я не уверен, что именно. Исправлено, но расстраивает.

РЕДАКТИРОВАТЬ: Я собираюсь принять ответ Тилла исключительно в интересах закрытия вопроса. Еще раз спасибо за ввод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...