If I have a PHP string, how can I determine if it contains at least one non-ASCII character or not, in an efficient way? And by non-ASCII character, I mean any character tha
I found it more useful to detect if any character falls out of the list
if(preg_match('/[^\x20-\x7e]/', $string))
You could use:
mb_detect_encoding
but it will be maybe not as precise as you want it to be.
Try: (Source)
function is_ascii( $string = '' ) {
return ( bool ) ! preg_match( '/[\\x80-\\xff]+/' , $string );
}
Although, all of the above answers are correct, but depending upon the input, these solutions may give wrong answers. See the last section in this ASCII validation post.