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