Я просто установил php 5.3.1 в моем сервере Linux и теперь моей старой работе, которую я раньше писал с тегами, не работает вообще..
Выручите меня.. Как я могу разрешить это??
Похоже, в вашем файле php.ini для параметра short_open_tags установлено значение «Выкл.». Попробуйте установить для него значение «Вкл.» И перезапустите apache .
Скорее всего, вам нужно включить короткие теги в конфигурационном файле PHP. Не зная вашей конфигурации, я не могу сказать, где вы его найдете, но вы ищете php.ini (скорее всего, где-то в /etc/php.ini
).
В нем нужный вам параметр - short_open_tags
. Смотрите здесь для всех основных настроек конфигурации PHP. Однако, как отмечали другие, использование коротких тегов может быть не самой лучшей стратегией. здесь есть хорошее обсуждение причин (за и против).
возможно, ваша новая конфигурация не поддерживает короткие теги. Просто используйте Php?>
. В любом случае, это лучшая практика.
Если вы все еще хотите их использовать, вы можете использовать директиву short_open_tag
. Также имейте в виду, что это не сработает, если у вас отключены короткие теги.
Основная причина этого в том, что вы можете использовать встроенные теги Xml.
Чтобы включить короткие теги, включите ini-директиву 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, которые должны обрабатываться как таковые. В течение нескольких лет
рекомендуется не использовать короткие теги "shortcut" и
вместо использования полныхPhp
и?>
комбинация тегов. Из-за широкого распространения XML и использования этих тегов в других языках, сервер может легко
запутаться и закончить синтаксический анализ неправильного кода в неправильном контексте. Но поскольку
этот сокращенный вариант был функцией в течение столь долгого времени, в настоящее время он все еще
поддерживается для обратной совместимости, но мы не рекомендуем их использовать.
Обратите также внимание на отклоненный RFC о коротких открытых тегах для шаблонов: http://wiki.php.net/rfc/shortags