2015-06-04 3 views
-2

У меня есть разные PHP-файлы, ни одна из которых не была изменена до того, как приложение работает и оно ломается. Моя проблема заключается в том, что по некоторым причинам эти файлы внезапно бросают ошибки разбора PHP на такие вещи, как «неожиданные» квадратные скобки в кажущихся случайными местами по всему файлу, но при ручной проверке файла синтаксис верен.Внезапная ошибка синтаксического анализа PHP на RHEL

Единственное, что я сделал, которое могло бы «изменить» файлы, было бы различными операциями chmod для изменения разрешений. Но как/почему это изменит фактическое содержимое файлов?

Файлы вызываются при загрузке так, как они всегда были, и отлично работали в прошлом, вплоть до изменения последнего chmod.

Является ли это постоянным, или мне просто нужно восстановить свою систему с более раннего времени?

RHEL 6.5, PHP 5.4.

Редактировать:

Пример ошибки:

PHP Parse error: syntax error, unexpected '[' in /var/ptc/CRM-dev/tools/init on line 122 

Что на линии 122:

$files = []; 

Другой пример:

PHP Parse error: syntax error, unexpected '[', expecting ')' in /var/ptc/CRM-dev/vendor/react/promise/src/functions.php on line 68 

Что на линии 68:

return resolve([]); 

Но эти файлы сами по себе не были изменены (насколько я знаю), и синтаксис выглядит правильно.

phpinfo() дает 5.4.39, что аналогично при запуске php -v на сервере.

+0

Как мы можем сказать, не видя код? – Siguza

+0

может быть много причин. Дайте нам пример строки, которая вызывает ошибку. вот возможность: «mysqli_fetch_assoc ($ r) ['r'] ' – Dimi

+0

« казалось бы, случайные места »- вы имеете в виду кажущееся случайным * для вас *? может быть, не для нас. показать MCVE. –

ответ

0

Если версия PHP была изменена, она может наткнуться на синтаксис массива квадратных квадратов PHP 5.4.

Используйте phpinfo();, чтобы версия PHP, работающая на веб-сервере, была такой же, как версия, которую вы используете в CLI.

Смежные вопросы