在PHP中,确定给定的UTF-8文本是否纯粹为ASCII的最快方法是什么?
function isAscii($str) {
return 0 == preg_match('/[^\x00-\x7F]/', $str);
}
function isAscii($str) {
$len = strlen($str) {
for ($i = 0; $i < $len; $i++) {
if (ord($str[$i]) > 127) return false;
}
return true;
}
mb_check_encoding
:function isAscii($str) {
return mb_check_encoding($str, 'ASCII');
}
$isNotAscii = false; for ($i=0,$len=strlen($string);$i<$len;$i++) { if (ord($string[$i]) > 127) { $isNotAscii = true; break; } }
。它遍历字符串中的每个字符,查找大于127的字符... - ircmaxellfunction isAscii($str) {
return preg_match('/^([\x00-\x7F])*$/', $str);
}
// doesn't accept ASCII control characters
function isAsciiText($str) {
return preg_match('/^([\x09\x0A\x0D\x20-\x7E])*$/', $str);
}
ord()
总是一个单字节的“该字节的值”函数。 - ircmaxellmb_check_encoding
非常慢,而preg_match
方法总是更快。 - Fleshgrindermb_check_encoding
要慢大约7倍。 - undefined