这是我在 Kohana3 验证器规则中发现的:
public static function digit($str, $utf8 = FALSE)
{
if ($utf8 === TRUE)
{
return (bool) preg_match('/^\pN++$/uD', $str);
}
else
{
return (is_int($str) AND $str >= 0) OR ctype_digit($str);
}
}
有人可以在传递$utf8
参数时举一个例子吗?true
并且false
可以给出不同的结果(准确地说是误报$utf8 == false
)?
据我记得 - 数字是 ascii 安全字符,任何 utf-8 字符都不会与它们混淆。
PS:更详细 - 是否有可能欺骗这个检查并通过一些在 UTF-8 中看起来不像数字的东西,但会通过检查$utf-8 == false