<? ?> теги не работают в php 5.3.1 - PullRequest
33 голосов
/ 19 марта 2010

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

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

Ответы [ 5 ]

70 голосов
/ 19 марта 2010

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

10 голосов
/ 19 марта 2010

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

1 голос
/ 19 марта 2010

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

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

0 голосов
/ 18 декабря 2012

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

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

0 голосов
/ 19 марта 2010

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

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

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

...