如果您指的是使用input
方法,是的,你可以从技术上开放system/libraries/Input.php
,转到这段代码:
/**
* Clean Input Data
*
* This is a helper function. It escapes data and
* standardizes newline characters to \n
*
* @access private
* @param string
* @return string
*/
function _clean_input_data($str)
{
if (is_array($str))
{
$new_array = array();
foreach ($str as $key => $val)
{
$new_array[$this->_clean_input_keys($key)] = $this->_clean_input_data($val);
}
return $new_array;
}
// We strip slashes if magic quotes is on to keep things consistent
if (get_magic_quotes_gpc())
{
$str = stripslashes($str);
}
// Should we filter the input data?
if ($this->use_xss_clean === TRUE)
{
$str = $this->xss_clean($str);
}
// Standardize newlines
if (strpos($str, "\r") !== FALSE)
{
$str = str_replace(array("\r\n", "\r"), "\n", $str);
}
return $str;
}
在 xss clean 之后,您可以添加自己的过滤函数,如下所示:
// Should we filter the input data?
if ($this->use_xss_clean === TRUE)
{
$str = $this->xss_clean($str);
}
$str = strip_tags($str);
然而,这意味着每次更新 CodeIgniter 时,您都必须再次进行此更改。此外,由于这在全球范围内完成所有这些操作,因此如果您返回的值是数字,那么它就没有意义。因为这些原因
现在,对于替代解决方案,您可以使用CodeIgniter 表单验证 http://codeigniter.com/user_guide/libraries/form_validation.html库,它允许您为字段设置自定义规则,包括可以接受一个参数的 php 函数,例如strip_tags
:
$this->form_validation->set_rules('usertext', 'User Text', 'required|strip_tags');
我不确定具体情况如何,所以我会让您决定采取哪条路径,但一般来说,我建议根据具体情况处理数据验证,因为在大多数情况下,数据验证是唯一的。