2012-04-27 5 views
0

Я потянув данные из моей базы данных, как таковое (сырье):Почему мне не нужно использовать htmlEntities?

long's streetWe’d " tree < < ! cool & <body> 

Из всего, что я понимаю, для этого должен быть выведен на HTML странице я должен нужно обернуть его в htmlEntities.

Но когда я его обертываю, он ничего не выводит. var_dump показывает:

long's streetWe&acirc;��d &quot; tree &lt; &lt; ! cool &amp; &lt;body&gt; 

Обертывание в htmlspecialchars выходов:

long's streetWe’d &quot; tree &lt; &lt; ! cool &amp; &lt;body&gt; 

выход var_dump является одинаковым для этого.

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

Когда я вывести его это отображается с помощью формы заполнения метод (это значение в большем массиве данных)

Я понятия не имею, почему он это делает. Кто-нибудь есть идеи?

Все это встроено в php, используя zend с mysql db.

Уважением,

+0

Вы показываете это на домашней странице через HTML? –

+0

Да, его заполняется в форму и форма выводится на страницу html. – mr12086

+0

Отправьте код, который вы используете для вывода этого текста. – Hammerite

ответ

1

Предположительно формы заполнения метод ожидает, что вы дать ему текст, а не HTML, поэтому он преобразуется в HTML перед выводом данных.

Это стандартный и разумный подход к проблеме. Данные должны быть экранированы в последний возможный момент (чтобы избежать его ненадлежащего экранирования).

+0

Когда я повторяю содержимое, которое заполняю форму, я все равно получаю правильные значения вывода без использования каких-либо функций. НО, если я повторяю его с помощью htmlspecialchars, я также получаю правильный вывод, но htmlentities st больные выходы: длинная улицаWeâ d "дерево <. Так что я думаю, что было сказано о форме правильно.он автоматически форматирует текст, но как эхо не использует никаких функций (не в форме), выводящих правильные данные. – mr12086

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