gpt4 book ai didi

php - 如何在 php 中为 htmlentities() 函数默认设置 ENT_QUOTES 标志

转载 作者:可可西里 更新时间:2023-11-01 13:26:40 25 4
gpt4 key购买 nike

我在显示之前对从数据库中获取的任何数据使用 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(Wesley 建议)提供的 html_escape() 内置函数对我来说是最好的,这样我就不必编写自己的包装函数。

最佳答案

据我所知,没有办法更改默认标志,但评论中给您的建议绝对是解决此问题的最佳方法:使用包装函数。

方便的是,Codeigniter 已经内置了一个适当命名的:

echo html_escape($string);

你也可以传入数组,这是它的作用:

/**
* Returns HTML escaped variable
*
* @access public
* @param mixed
* @return mixed
*/
if ( ! function_exists('html_escape'))
{
function html_escape($var)
{
if (is_array($var))
{
return array_map('html_escape', $var);
}
else
{
return htmlspecialchars($var, ENT_QUOTES, config_item('charset'));
}
}
}

只需在您的项目中搜索 htmlentities 并(小心地)替换为 html_escape。这也将为您提供在未来轻松进行更改的机会,因为您可以更改功能。这是一项初始时间投资,但非常值得。

关于php - 如何在 php 中为 htmlentities() 函数默认设置 ENT_QUOTES 标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13223967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com