2013-07-03 2 views
5

Например:Как распечатать необработанную строку, содержащую теги в PHP?

$str="<script>alert('hello');</script>"; 

Если я использую эхо, чтобы распечатать его, то появится окно предупреждения в браузере.

Как распечатать необработанную строку <script>alert('hello');</script> в этом случае?

+0

Вы хотите RAW тегов/контента, или вы хотите, чтобы это выглядело как реальное содержание, но с заменить '<' '>' ? – DanFromGermany

+0

также должно быть выведено – camino

ответ

17

Зависит, если вы хотите, чтобы слова script. Если да, то

Вы должны использовать это.

echo htmlspecialchars($str); 

См http://php.net/manual/en/function.htmlspecialchars.php

Если не использовать strip_tagshttp://php.net/manual/en/function.strip-tags.php

+0

все ваши функции не выводят необработанные теги. (REAL "<", ">" chars) – DanFromGermany

+0

Это просто неправда – DanFromGermany

0

Если вы хотите R Данные EAL RAW показаны, используйте <xmp> тег:

$str="<xmp><script>alert('hello');</script></xmp>"; 

jsFiddle: http://jsfiddle.net/jvpYp/

предостережение:

если вы используете

$userInput = "</xmp><script>evil javascript</script>"; 
echo "<xmp>" . $userInput . "</xmp>"; 

вы можете столкнуться с проблемами.

обновление: <xmp> тега уронил, так как HTML 4.0, но до сих пор работает в большинстве браузеров

Смежные вопросы