У меня есть контроллер и вид; данным, с которыми я работаю внутри контроллера, нельзя доверять (они извлекаются откуда-то извне и не $_GET
или $_POST
).
Как мне избежать данных при печати в представлении, чтобы обеспечить правильное экранирование тегов и других вещей? Я привык к Zend_View's $this->escape($foo)
, который используется изнутри вида, поэтому я все еще пытаюсь понять. Я предпочитаю избегать его из представления, поскольку я использую данные, но если это не вариант, я сделаю это в контроллере.
(Я обнаружил фильтрацию для ввода $ this->, но поскольку данные не поступают из $_GET
/ $_POST
, это не очень полезно для меня. :-) К сожалению, примеры, которые я До сих пор все использовали контроллер, помещающий статические данные в массив, который затем передается в представление, например. $data['foo'] = 'Example'
)
Есть идеи?
Редактировать: Я спрашиваю, потому что я не особо наслаждаюсь использованием html_entities($str, ENT_QUOTES, 'utf-8')
везде (вместе с mb_convert_encoding()
и друзьями), но я предполагаю, что создам пользовательский помощник при необходимости.
Редактировать # 2: Данные представляют собой набор строк (которые могут содержать что угодно, от буквенно-цифровых символов до <b>foo</b>
, до <script>alert('xsslol');</script>
.
Мне нужно экранировать эти строки, чтобы напечатать их, скажем, в ячейках таблицы, не позволяя печатать какие-либо теги HTML (преобразовывая теги в их эквиваленты сущности HTML).
Если бы я работал с чистым PHP, я бы использовал для этого htmlentities (), как указано выше.