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

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

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

Ответ 1

Чтобы включить короткие теги, включите директиву 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

Ответ 2

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

Ответ 3

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

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

Ответ 4

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

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

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

Ответ 5

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

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