strip_tags не работает должным образом - PullRequest
0 голосов
/ 28 февраля 2011

Я использую это в моем файле TPL, как

{strip_tags({$obj->getfunc()})}

и выдает ошибку типа "syntax error: unrecognized tag:

"

что-то не так с синтаксисом ??

полное сообщение об ошибке

<b>Fatal error</b>:  Smarty error: [in file.tpl line 7]: syntax error: unrecognized tag: strip_tags({$obj->getfunc() 

Ответы [ 3 ]

1 голос
/ 28 февраля 2011

Я бы запустил эту функцию не на уровне представления, а на уровне бизнес-логики.

1 голос
/ 28 февраля 2011

Ваш код:

strip_tags({$obj->getfunc()})

Проблема здесь в фигурных скобках {}.Я не знаю, почему вы думали, что они вам нужны, но они не нужны.

[править]

Я вижу, что вы отредактировали вопрос / комментарии, чтобы отметить, что выиспользуя Smarty.Теперь фигурные скобки имеют смысл.

Я полагаю, вы начали с {$obj->getfunc()} и решили использовать strip_tags() для предотвращения взлома.

{} скобки являются частьюSmarty, так что вы должны использовать их только для всего блока кода.Поэтому они нужны вам вне функции `strip_tags (), а не внутри, при вызове метода, как вы это делали ранее.

Так что вместо этого strip_tags({$obj->getfunc()}) у вас должно быть что-то вроде этого:

{strip_tags($obj->getfunc())}

Надеюсь, это поможет.

[править 2]

Хорошо, я разработчик PHP, а не умный разработчик.Приведенный выше код является действительным PHP (не считая скобок {}).Но, возможно, smarty это не нравится.

Я гуглил и нашел эту страницу на веб-сайте Smarty: http://www.smarty.net/docs/en/language.modifier.strip.tags.tpl

На этой странице приведен определенный синтаксис Smarty для strip_tags, поэтому, основываясь на этом,похоже, ваш код должен выглядеть так:

{$obj->getfunc()|strip_tags}
0 голосов
/ 28 февраля 2011

Замените { из кода JavaScript в вашем шаблоне на {literal} и } на {/literal}

...