В документе PHP с включенными короткими открытыми тегами интерпретатор PHP увидит <?
часть тега <?js
и попытается проанализировать его как PHP, что приведет к этой ошибке:
Parse error: syntax error, unexpected T_STRING in ... on line ...
Чтобы устранить проблему, отключите краткую форму (<? ?>
) открытого тега PHP.
Теперь это отключит использование <?
и<?=
в ваших скриптах PHP.Если на вашем сайте используются только теги <?php
, это безопасно.если он также использует <?
, то это небезопасно, поскольку ваши сценарии больше не будут работать должным образом.
Существует два способа, которыми ваш веб-хост или системное администрирование настроит настроенный Apache для использованияPHP :
- Apache загружает интерпретатор PHP как модуль Apache
- Apache запускает интерпретатор PHP как двоичный файл CGI
Какое решение выбудет использоваться ниже, будет зависеть от того, как Apache запускает PHP в вашей среде *.
В файле Apache .htaccess
укажите следующее:
# PHP as an Apache Module
php_value short_open_tag 0
В глобальном или локальном php.ini
файл, поместите следующее:
# PHP as a CGI Wrapper
short_open_tag = Off
В любом случае вы захотите перезапустить Apache после внесения каких-либо изменений в конфигурацию, чтобы убедиться, что новые настройки выбраны.
Примечание. Если ваш сервер настроен для запуска PHP в качестве модуля Apache, у вас будет выбор: использовать файлы php.ini
или Apache .htaccess
.Тем не менее, если на вашем сервере PHP работает как оболочка CGI, у вас будет выбор: использовать php.ini
файлы локально для изменения настроек, поскольку Apache больше не контролирует PHP.
Когда PHP работает как оболочка CGI, размещение настроек PHP в файле .htaccess
приведет к ошибке сервера.