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

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

Пожалуйста, помогите мне.. Как я могу решить это??

5 ответов

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

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

    php_value short_open_tag 1


Больше объяснений:

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

С другой стороны, стенограмма эха <?= $var ?> включен по умолчанию, начиная с PHP 5.4, независимо от настроек php.ini, и не считается устаревшим. Вы можете использовать его вместо <?php echo $var; ?>

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

------------------------------------------------
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, которые должны быть обработаны как таковые. Это было
в течение нескольких лет рекомендуется не использовать ярлык "короткий путь" и
вместо того, чтобы использовать полный <?php а также ?> комбинация тегов. Благодаря широкому распространению использования XML и использованию этих тегов на других языках сервер может легко стать
запутаться и в конечном итоге анализировать неправильный код в неправильном контексте. Но потому что
этот короткий путь был особенностью в течение столь долгого времени, в настоящее время он все еще
поддерживается для обратной совместимости, но мы рекомендуем не использовать их.

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

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

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

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

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

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

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

Если вы используете wamp или xamp, их действительно легко активировать. Просто нажмите на иконку->php server->setting-> позволить открыть короткий тег

Лучше не использовать эту функциональность. Например, xml использует тот же способ, чтобы открыть заголовок в документах.

Другие вопросы по тегам