Предотвратить отображение кодов символов HTML в Textarea

StackOverflow https://stackoverflow.com/questions/2994357

Вопрос

Можно ли отобразить HTML -коды символов, хранящиеся в текстовом поле в SQL, в Textarea, не производя их в качестве соответствующего персонажа? Я не был и появлялся как и (как он хранится в таблице). Или они должны хранить HTML, поэтому мне не нужно беспокоиться об этом?

(Сайт использует PHP)

Это было полезно?

Решение

В PHP вы можете использовать функцию htmlspecialChars ( http://php.net/manual/en/function.htmlspecialchars.php ):

<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new;
?>

И это будет отображаться:

&lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;

Если вы хотите их обратно, вы просто используете функцию htmlspecialchars_decode

<?php
$str = '<p>this -&gt; &quot;</p>';

echo htmlspecialchars_decode($str);

// note that here the quotes aren't converted
echo htmlspecialchars_decode($str, ENT_NOQUOTES);
?>

Другие советы

То, о чем вы говорите, называется HTML -кодировка; У каждого современного языка есть объект в своей библиотеке для этого, например, функция HTMLSpecialChars в PHP. Для получения дополнительной информации PHP см. это так вопрос.

Вы также должны убедиться, что вы должным образом дезинфицируете входные данные даже против несколько раундов HTML декодирования; в противном случае вы будете подвержены CSS (Сценарий поперечного сайта) Атаки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top