即使在安装后也要使用安全过滤器?

时间:2012-09-22 作者:Jenny

我有一些值要保存到Posteta和usermeta表中。在保存之前,我已经完成了以下操作:$value = intval($value) . 我认为这已经足够了。但我看到一些插件仍然对这些数字使用过滤器。我想确认一下intval 并且没有安全过滤器。

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

intval() 当then值有前导零或是数学表达式时,有时会表现出有点违反直觉的行为。结果应该始终是safe, 但这并不总是你想要的expect.

一个简单的例子:

intval( \'9223372036854775808\' );
将永远不会返回此值,因为即使64位系统也无法处理如此大的数字。你得到9223372036854775807 在64位系统上,以及2147483647 在32位上。

但如果您使用:

preg_match( \'~\\d+~\', \'9223372036854775808\', $matches );
$matches[0] 将返回此数字不变。

因此,这取决于您期望的值。

结束

相关推荐

调用Function_Exist()比调用Apply_Filters()快还是慢

调用函数\\u exists()时,应用\\u filters()的速度是快还是慢。。。还是差异太小,不应该考虑?我在Kaiser的基础上做了一些测试,结果表明,在同时存在函数和过滤器的情况下,function\\u exists()的速度大约是3倍。如果过滤器不存在,速度将提高约11倍。没想到会这样。function taco_party() { return true; } add_filter( \'taco-party\', \'taco_party\'