Покурив когда-то документацию, я написал незамысловатый метод:
/**
* ASCII (American Standard Code for Information Interchange)
*
* @param string $str, [$...]
*
* @access public
* @return bool
*/
public static function is_ascii()
{
$str = implode(func_get_args());
return (bool) preg_match('/^[[:ascii:]]+$/', $str);
}
Который отлично справлялся со своей прямой задачей, в PHP 5.5 этот метод стал работать через раз, метод с русскими буквами возвращает то TRUE то FALSE, кто нибудь сталкивался? Есть ли этому объяснение?
В кодировке
cp866 русские буквы являются частью ASCII таблицы, быть может в этом причина? Это же какие ещё сюрпризы ожидать от PHP 5.5.
^[\x00-\x7F]+$ fixed...
PS сборка php под win.