2010-06-08 3 views
1

Возможно ли отображать коды символов HTML, хранящиеся в текстовом поле SQL, в текстовое поле, не отображая их в качестве их соответствующего символа? i was was & показать как & amp; (способ, которым он хранится в таблице). Или это способ, которым я должен хранить HTML, поэтому мне не нужно беспокоиться об этом?Предотвращение отображения кодов символов HTML в textarea

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

+0

К сожалению, ваша типография оставляет вопрос непонятным: в вашей базе данных хранится «&», и вы хотите, чтобы «и» отображались в текстовом поле, или ваша база данных хранит «&», и вы хотите, чтобы «&» отображалось? – deceze

ответ

0

В 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); 
?> 
+0

Спасибо, я на самом деле понял это через несколько минут после того, как я разместил вопрос, но спасибо за ответ. – seanmetzgar

0

Что вы говорите, называется кодировкой HTML? каждый современный язык имеет средство в своей библиотеке для этого, например функцию htmlspecialchars в PHP. Дополнительные сведения о PHP см. В this SO question.

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

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