這是我在Kohana3驗證規則已經找到:UTF-8,數字和正則表達式
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-safe字符和utf-8字符都不會與他們混淆。
PS:更詳細的 - 這可能愚弄這張支票,並通過一些在UTF-8將看都不像是一個數字,而是會通過檢查與$utf-8 == false
@mario:對於無效的UTF-8很明顯,但我對有效的UTF-8很好奇。就像着名的帶有引號和多字節字符集的sql轉義「漏洞」一樣,但數字爲 – zerkms
剛剛經過測試,PCRE無論如何都拒絕無效的UTF-8編碼。 – mario