我正在使用这些代码检查字符串是否为英文。
<?php
$string="で書くタッチイベント (フ";
if(!preg_match('/[^\W_ ] /',$string))
{
echo "Please enter English words only:(";
}
else {
echo "OK, English Detected!";
}
?>
它无法提供完美的结果,因为像"some english text で書くタッチイベント (フ"
这样的字符串也可以检测为英语,有什么想法吗?
答案 0 :(得分:20)
试试这个(请注意你需要安装mbstring php模块):
<?php
$string="で書くタッチイベント (フ";
if(strlen($string) != mb_strlen($string, 'utf-8'))
{
echo "Please enter English words only:(";
}
else {
echo "OK, English Detected!";
}
?>
答案 1 :(得分:0)
您无法从字符类型中检测语言。并且没有万无一失的方法可以做到这一点。
使用任何方法,你只是做了一个有根据的猜测。来自:Detect language from string in PHP
虽然下面的一些文章可能会变得方便..
http://papermashup.com/php-language-detection/
https://github.com/BruceJillis/PHP-Language-Detection
http://phpir.com/language-detection-with-n-grams/
希望有所帮助......
答案 2 :(得分:0)
if(!preg_match('/[^\w ]/u',$string))