Я только что установил php 5.3.1 на моем Linux-сервере, и теперь моя старая работа, которую я использовал для написания с тегами, не работает вообще.
Пожалуйста, помогите мне. Как я могу решить эту проблему?
Я только что установил php 5.3.1 на моем Linux-сервере, и теперь моя старая работа, которую я использовал для написания с тегами, не работает вообще.
Пожалуйста, помогите мне. Как я могу решить эту проблему?
Чтобы включить короткие теги, включите директиву 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. Попробуйте установить его на "On" и перезапустите apache.
Скорее всего, вам нужно включить короткие тэги в ваш файл конфигурации PHP. Не зная вашей конфигурации, я не мог сказать, где вы ее найдете, но вы ищете php.ini(скорее всего, где-то вроде /etc/php.ini
).
В этой настройке вы находитесь short_open_tags
. См. здесь для всех основных параметров конфигурации для PHP. Однако, как отмечали другие, использование коротких тегов не может быть лучшей стратегией. Здесь - хорошее обсуждение причин (для и против).
возможно, ваша новая конфигурация не будет содержать коротких тегов. Просто используйте <?php ?>
. В любом случае это лучше.
Если вы все еще хотите их использовать, вы можете short_open_tag
. Также имейте в виду, что не будет работать, если у вас отключены короткие теги.
Основная причина этого заключается в том, что вы можете использовать встроенные теги Xml.
Если вы используете wamp или xamp, их очень легко активировать. Просто нажмите значок- > php server- > setting- > разрешите открывать короткий тег
Лучше не использовать эту функциональность. Например, xml использует тот же способ, чтобы открыть заголовок в документах.