为什么我不需要使用htmlEntities?

时间:2012-04-27 13:16:56

标签: php mysql html zend-framework utf-8

我从我的数据库中提取数据(原始):

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 不使用包装功能输出就像我想要的那样输出它,因为它存储在数据库中。

当我输出它时,它通过表单填充方法显示(此值在更大的数据数组中)

我不知道为什么会这样做。有没有人有任何想法?

这都是使用zend和mysql db构建的php。

亲切的问候,

1 个答案:

答案 0 :(得分:1)

假设表单populate方法需要您为其提供文本而不是HTML,因此在输出数据之前它会转换为HTML。

这是解决问题的标准方法。数据应该在最后一刻被转义(以避免它被不当地转义)。