| | 37 | function FindBadUtf8( $string ) |
| | 38 | { |
| | 39 | $regex = |
| | 40 | '([\x00-\x7F]'. |
| | 41 | '|[\xC2-\xDF][\x80-\xBF]'. |
| | 42 | '|\xE0[\xA0-\xBF][\x80-\xBF]'. |
| | 43 | '|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}'. |
| | 44 | '|\xED[\x80-\x9F][\x80-\xBF]'. |
| | 45 | '|\xF0[\x90-\xBF][\x80-\xBF]{2}'. |
| | 46 | '|[\xF1-\xF3][\x80-\xBF]{3}'. |
| | 47 | '|\xF4[\x80-\x8F][\x80-\xBF]{2}'. |
| | 48 | '|(.{1}))'; |
| | 49 | |
| | 50 | while (preg_match('/'.$regex.'/S', $string, $matches)) { |
| | 51 | if ( isset($matches[2])) { |
| | 52 | return true; |
| | 53 | } |
| | 54 | $string = substr($string, strlen($matches[0])); |
| | 55 | } |
| | 56 | |
| | 57 | return false; |
| | 58 | } |
| | 59 | |