清理随机数据类型


Sanitizing random data type

我在清理数据时遇到问题。

是否有一个内置的php函数来清除数据,如htmlspecialchars/htmlnteties,如果提供非字符串值,它将保持其原始类型。示例:

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"

谢谢你抽出时间。

$a = 1;//(int);
$b = htmlspecialchars($a);
settype($b,gettype($a));
var_dump($b); // integer"1"

中的结果

int(1)

您可以先按类型进行检查,然后使用htmlspecialchars,然后转换为类型。。。尽管这将违反使用html特殊字符的规定。此外,我认为$a可能来自某个请求变量,在这种情况下,它将始终是一个字符串。

听起来好像你想要一个函数来为你确定上下文。既然它已经被类型化为int,你想做什么"转义"?

不需要对整数值使用htmlspecialchar。

我只是得到了类型,然后做一些像我在下面的代码中显示的事情,甚至你可以稍后再次设置类型。

$var_type = gettype($var);
switch ($var_type)
{
    case 'integer':
         break;
    case 'string':
         $var = htmlspecialchars($var);
}
return $var;