Предотвратить отображение кодов символов HTML в Textarea
-
24-10-2019 - |
Вопрос
Можно ли отобразить 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;
?>
И это будет отображаться:
<a href='test'>Test</a>
Если вы хотите их обратно, вы просто используете функцию htmlspecialchars_decode
<?php
$str = '<p>this -> "</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 (Сценарий поперечного сайта) Атаки.