Ank*_*sad 6 php codeigniter html-entities
我正在使用htmlentities($data, ENT_QUOTES)从数据库中提取的任何数据,然后再显示它.
有没有办法我可以ENT_QUOTES默认为htmlentities()函数设置标志,这样即使我写htmlentities($data)它也应该工作htmlentities($data, ENT_QUOTES).
正如php的文档中所写,默认是ENT_COMPAT | ENT_HTML401.
为了您的信息,我使用codeigniter框架,php5.
更新1:使用迈克尔建议的自定义函数包装可以提供帮助,但我已经在没有ENT_QUOTES标志的网站中随处使用了这个,并且想知道php是否提供了一种方法来更改其功能的默认值.
更新2:我认为由codeigniter提供的html_escape()内置函数(由Wesley建议)对我来说是最好的,所以我不必编写自己的包装函数.
据我所知,无法更改默认标志,但评论中给您的建议绝对是解决此问题的最佳方法:使用包装函数。
方便的是,Codeigniter 已经内置了一个,名称恰当:
echo html_escape($string);
Run Code Online (Sandbox Code Playgroud)
您也可以传入数组,这就是它的作用:
/**
* 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'));
}
}
}
Run Code Online (Sandbox Code Playgroud)
只需在您的项目中搜索htmlentities并(小心)替换为html_escape. 这也将为您提供将来轻松进行更改的机会,因为您可以更改功能。虽然初始时间投资有点大,但非常值得。