Почему Smarty заменяет такие вещи, как "%>" на <? Php echo "%> '; ?> а как этого избежать? - PullRequest
0 голосов
/ 03 марта 2011

Я оптимизирую шаблон Smarty, и все выглядит хорошо, но остается только то, что полученный кешированный шаблон завален такими вещами, как <?php echo '%>'; ?>, где он должен просто иметь '%>'.

Он делает то же самое для '?>', но это понятно, так как это может сбить с толку PHP, '%>' имеет такой же эффект?

Ответы [ 2 ]

1 голос
/ 03 марта 2011

Как вы указали, он делает то же самое для более традиционного закрывающего тега ?>.

Ну, %> тоже закрывающий тег PHP, хотя по умолчанию один отключен. Вы активируете его с помощью asp-тегов :

Включает использование ASP-подобных тегов <%%>. в дополнение к обычным тегам. это включает в себя переменную-> значение печати сокращение от <% = $ value%>. Для большего информацию смотрите в разделе Выход из HTML.

Смарти просто старается. К сожалению, это не очень хорошо с этим справляется. Убедитесь, что это отключено, и ваши проблемы должны исчезнуть.

1 голос
/ 03 марта 2011

Посмотрите на настройку ini asp-тегов:

asp_tags boolean

Включает использование ASP-подобных тегов <%%> вдополнение к обычным тегам.Это включает в себя сокращенную стенографию переменной-> value <% = $ value%>.Для получения дополнительной информации см. Экранирование из HTML.

В более новых версиях php это отключено по умолчанию, поэтому, если smarty изменит их, я не удивлюсь.(Если я вас правильно понял)

...