<??> теги, не работающие в php 5.3.1

Я просто установил php 5.3.1 в моем сервере Linux и теперь моей старой работе, которую я раньше писал с тегами, не работает вообще..

Выручите меня.. Как я могу разрешить это??

34
задан hakre 31 March 2013 в 16:56
поделиться

4 ответа

Похоже, в вашем файле php.ini для параметра short_open_tags установлено значение «Выкл.». Попробуйте установить для него значение «Вкл.» И перезапустите apache .

10
ответ дан 27 November 2019 в 16:22
поделиться

Скорее всего, вам нужно включить короткие теги в конфигурационном файле PHP. Не зная вашей конфигурации, я не могу сказать, где вы его найдете, но вы ищете php.ini (скорее всего, где-то в /etc/php.ini).

В нем нужный вам параметр - short_open_tags. Смотрите здесь для всех основных настроек конфигурации PHP. Однако, как отмечали другие, использование коротких тегов может быть не самой лучшей стратегией. здесь есть хорошее обсуждение причин (за и против).

1
ответ дан 27 November 2019 в 16:22
поделиться

возможно, ваша новая конфигурация не поддерживает короткие теги. Просто используйте . В любом случае, это лучшая практика.

Если вы все еще хотите их использовать, вы можете использовать директиву short_open_tag . Также имейте в виду, что это не сработает, если у вас отключены короткие теги.

Основная причина этого в том, что вы можете использовать встроенные теги Xml.

0
ответ дан 27 November 2019 в 16:22
поделиться

Чтобы включить короткие теги, включите ini-директиву short_open_tag ini одним из следующих способов (скорее всего, не все из них будут работать для вас ):

  • установите директиву short_open_tag = On в вашем php.ini ( рекомендуемый способ );
  • вызовите ini_set ("short_open_tag", 1); в вашем коде;
  • добавьте следующую строку в ваш файл .htaccess:

    php_value short_open_tag 1


Дополнительные пояснения:

Не рекомендуется использовать короткие теги ( < ??> ). Вы должны использовать теги полной длины ( ). Короткий синтаксис устарел, и если вы хотите сделать свое приложение переносимым, возможно , что короткие открытые теги не разрешены на другом сервере, и, следовательно, ваше приложение сломается.

С другой стороны , сокращение эха включено по умолчанию, начиная с PHP 5.4 , независимо от настроек php.ini и не будет устаревать.Вы можете использовать его вместо

И для поведения по умолчанию:

------------------------------------------------
php.ini values : short_open_tag
------------------------------------------------

PHP 4, 5_0
 * Default behaviour   : on
 * php.ini-dist        : on
 * php.ini-recommended : on

PHP 5_1, 5_2:
 * Default behaviour   : on
 * php.ini-dist        : on
 * php.ini-recommended : off

PHP 5_3:
 * Default behaviour   : on
 * php.ini-development : off
 * php.ini-production  : off

И причина запрета коротких открытых тегов:

Эта директива определяет, будет ли PHP распознавать код между
и ? > теги в качестве источника PHP, которые должны обрабатываться как таковые. В течение нескольких лет
рекомендуется не использовать короткие теги "shortcut" и
вместо использования полных и ?> комбинация тегов. Из-за широкого распространения XML и использования этих тегов в других языках, сервер может легко
запутаться и закончить синтаксический анализ неправильного кода в неправильном контексте. Но поскольку
этот сокращенный вариант был функцией в течение столь долгого времени, в настоящее время он все еще
поддерживается для обратной совместимости, но мы не рекомендуем их использовать.

Обратите также внимание на отклоненный RFC о коротких открытых тегах для шаблонов: http://wiki.php.net/rfc/shortags

71
ответ дан 27 November 2019 в 16:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: