PHP检测是否非英语

时间:2013-04-10 08:57:37

标签: php

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

<?php
$string="で書くタッチイベント (フ";
if(!preg_match('/[^\W_ ] /',$string))
{
echo "Please enter English words only:(";
}
else {
echo "OK, English Detected!";
}
?>

它无法提供完美的结果,因为像"some english text で書くタッチイベント (フ"这样的字符串也可以检测为英语,有什么想法吗?

3 个答案:

答案 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))