PHP检测是否非英语

Jes*_*gmn 8 php

我正在使用这些代码来检查字符串是否为英文.

<?php
$string="?????????? (?";
if(!preg_match('/[^\W_ ] /',$string))
{
echo "Please enter English words only:(";
}
else {
echo "OK, English Detected!";
}
?>
Run Code Online (Sandbox Code Playgroud)

它不能提供完美的结果,因为像"some english text ?????????? (?"这样的字符串也检测为英语,任何想法?

Eds*_*ina 22

试试这个(请注意你需要安装mbstring php模块):

<?php
    $string="?????????? (?";

    if(strlen($string) != mb_strlen($string, 'utf-8'))
    { 
        echo "Please enter English words only:(";
    }
    else {
        echo "OK, English Detected!";
    }
?>
Run Code Online (Sandbox Code Playgroud)

  • 无论如何,这是每个程序员必读的内容:http://kunststube.net/encoding/ (2认同)