【发布时间】:2012-11-04 23:14:40
【问题描述】:
我在显示之前对从数据库中提取的任何数据使用htmlentities($data, ENT_QUOTES)。
有没有一种方法可以默认为htmlentities() 函数设置标志ENT_QUOTES,这样即使我写htmlentities($data) 它也应该像htmlentities($data, ENT_QUOTES) 一样工作。
如 php 文档中所写,默认为 ENT_COMPAT | ENT_HTML401。
为了您的信息,我正在使用 codeigniter 框架,php5。
更新 1:按照 Michael 的建议使用自定义函数进行包装可能会有所帮助,但我已经在网站中的任何地方都使用了它,没有 ENT_QUOTES 标志,我想知道 php 是否提供了一种方法来更改其函数的默认值。
更新 2:我认为 codeigniter 提供的 html_escape() 内置函数(由 Wesley 建议)对我来说是最好的,这样我就不必编写自己的包装函数了。
【问题讨论】:
-
你为什么用
htmlentities,而不是htmlspecialchars? -
你可以只包装函数。
function my_htmlentities($string) {return htmlentities($string, ENT_QUOTES);}并改为致电my_htmlentities()。 -
@zerkms 也许通常在 HTML 属性中使用它,
htmlentities()以更直接的方式处理引号编码。 -
@Zerkms:就这个问题而言,这并没有什么不同,因为对于 htmlspecialchars 我也需要提供 ENT_QUOTES 标志.. 对吗?
-
@Michael:包装函数当然是一个很好的技巧,它应该可以工作..我会尝试一下:)但是有没有更基本的方法以及更改一些 ini 等。
标签: php codeigniter html-entities