我在清理数据方面遇到了问题。
是否有内置的php函数来清理像htmlspecialchars / htmlenteties这样的数据,如果提供非字符串值,它会保留其原始类型。 例如:
The problem:
$a = 1;//(int);
$b = htmlspecialchars($a);
var_dump($b); // string "1"
The desired effect:
$a = 1;//(int);
$b = htmlspecialchars($a);
var_dump($b); // integer"1"
感谢您的时间。
答案 0 :(得分:2)
$a = 1;//(int);
$b = htmlspecialchars($a);
settype($b,gettype($a));
var_dump($b); // integer"1"
结果
int(1)
答案 1 :(得分:0)
您可以先按类型检查,然后使用htmlspecialchars
然后转换为类型...虽然这会违反使用htmlspecial字符。另外,我认为$a
可能来自某个请求变量,在这种情况下它总是一个字符串。
听起来好像你想要一个函数来为你确定上下文。因为如果它已经被输入int,你想做什么“逃避”?
答案 2 :(得分:0)
无需在整数值上使用htmlspecialchars。
我只是得到了类型,并执行类似我在下面的代码中显示的内容,即使您稍后可以再次设置类型。
$var_type = gettype($var);
switch ($var_type)
{
case 'integer':
break;
case 'string':
$var = htmlspecialchars($var);
}
return $var;