Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中为htmlentities()函数默认设置ENT_QUOTES标志_Php_Codeigniter_Html Entities - Fatal编程技术网

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

如何在php中为htmlentities()函数默认设置ENT_QUOTES标志,php,codeigniter,html-entities,Php,Codeigniter,Html Entities,我在显示之前对从数据库中获取的任何数据使用htmlentities($data,entu QUOTES) 有没有办法在默认情况下为htmlentities()函数设置标志entquotes,这样即使我写htmlenties($data)它也应该像htmlenties($data,entquotes)一样工作 如php文档中所述,默认值为ENT_COMPAT | ENT_HTML401 为您提供信息,我正在使用codeigniter框架php5 更新1:按照Michael的建议,使用自定义函数包装

我在显示之前对从数据库中获取的任何数据使用
htmlentities($data,entu QUOTES)

有没有办法在默认情况下为
htmlentities()
函数设置标志
entquotes
,这样即使我写
htmlenties($data)
它也应该像
htmlenties($data,entquotes)
一样工作

如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\u escape
。这也将为您提供一个在将来轻松进行更改的机会,因为您可以更改功能。这是一点初始时间投资,但非常值得。

如果您直接访问变量。 例如: $this->model_name->variable

然后,您可以在模型名中使用_get函数,并在从对象访问它之前对其进行处理。

为什么要使用
htmlspecialchars
,而不是
htmlspecialchars
?只需包装函数即可<代码>函数my_htmlentities($string){return htmlentities($string,entu QUOTES)}并调用
my_htmlentities()
。@zerkms可能通常在HTML属性中使用它,其中
htmlenties()
以一种更直接的方式处理引号编码。@Zerkms:就这个问题而言,这没有什么区别,因为对于htmlspecialchars,我也需要提供ENT_引号标志。。对吗?@Michael:包装函数当然是一个很好的技巧,它应该可以工作。。我会试试:)但是有没有更基本的方法,比如改变一些ini等。我想这就是我想要的。。谢谢:)它还可以清理阵列,这让我的生活轻松多了。。我只需将完整的数据数组立即传递到控制器本身,然后再将其发送到视图。我没有得到它。。它如何解决我的目的?