<??> теги не работают в 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 использует тот же способ, чтобы открыть заголовок в документах.