У меня есть сценарий импорта из 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 .