seems_utf8() cleanup. Props hakre. fixes #9692
git-svn-id: https://develop.svn.wordpress.org/trunk@11414 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
71af95802b
commit
848507ccff
|
@ -172,26 +172,29 @@ function wpautop($pee, $br = 1) {
|
||||||
/**
|
/**
|
||||||
* Checks to see if a string is utf8 encoded.
|
* Checks to see if a string is utf8 encoded.
|
||||||
*
|
*
|
||||||
* @author bmorel at ssi dot fr
|
* NOTE: This function checks for 5-Byte sequences, UTF8
|
||||||
|
* has Bytes Sequences with a maximum length of 4.
|
||||||
*
|
*
|
||||||
|
* @author bmorel at ssi dot fr (modified)
|
||||||
* @since 1.2.1
|
* @since 1.2.1
|
||||||
*
|
*
|
||||||
* @param string $Str The string to be checked
|
* @param string $str The string to be checked
|
||||||
* @return bool True if $Str fits a UTF-8 model, false otherwise.
|
* @return bool True if $str fits a UTF-8 model, false otherwise.
|
||||||
*/
|
*/
|
||||||
function seems_utf8($Str) { # by bmorel at ssi dot fr
|
function seems_utf8(&$str) {
|
||||||
$length = strlen($Str);
|
$length = strlen($str);
|
||||||
for ($i=0; $i < $length; $i++) {
|
for ($i=0; $i < $length; $i++) {
|
||||||
if (ord($Str[$i]) < 0x80) continue; # 0bbbbbbb
|
$c = ord($str[$i]);
|
||||||
elseif ((ord($Str[$i]) & 0xE0) == 0xC0) $n=1; # 110bbbbb
|
if ($c < 0x80) $n = 0; # 0bbbbbbb
|
||||||
elseif ((ord($Str[$i]) & 0xF0) == 0xE0) $n=2; # 1110bbbb
|
elseif (($c & 0xE0) == 0xC0) $n=1; # 110bbbbb
|
||||||
elseif ((ord($Str[$i]) & 0xF8) == 0xF0) $n=3; # 11110bbb
|
elseif (($c & 0xF0) == 0xE0) $n=2; # 1110bbbb
|
||||||
elseif ((ord($Str[$i]) & 0xFC) == 0xF8) $n=4; # 111110bb
|
elseif (($c & 0xF8) == 0xF0) $n=3; # 11110bbb
|
||||||
elseif ((ord($Str[$i]) & 0xFE) == 0xFC) $n=5; # 1111110b
|
elseif (($c & 0xFC) == 0xF8) $n=4; # 111110bb
|
||||||
|
elseif (($c & 0xFE) == 0xFC) $n=5; # 1111110b
|
||||||
else return false; # Does not match any model
|
else return false; # Does not match any model
|
||||||
for ($j=0; $j<$n; $j++) { # n bytes matching 10bbbbbb follow ?
|
for ($j=0; $j<$n; $j++) { # n bytes matching 10bbbbbb follow ?
|
||||||
if ((++$i == $length) || ((ord($Str[$i]) & 0xC0) != 0x80))
|
if ((++$i == $length) || ((ord($str[$i]) & 0xC0) != 0x80))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Reference in New Issue