2014-02-17 47 views
0

PHP中有一种简单的方法可以告诉字符串中字符的百分比是非英语吗?字符串中字符的百分比是非英文的?

我想要实现的是根据说明在列表中检测非英语项目,并使用百分比来说明可能存在于英文文本中的特殊字符。例如。只有少于5%的非英文字符并不一定意味着文本不是英文的,而是95%的非英文字符。

+0

使用mb_strlen()获取字符串的长度;使用preg_match()来获得字符[A-Z]的计数,并做一些数学计算 –

回答

0

那么有这样做的没有直接的方法,但是这可能使用帮助mb_strlen

下面是一个例子

$string="string with utf-8 chars åèä - doo-bee doo-bee dooh"; 
$utf = mb_strlen($string, 'utf-8') ; 
echo $utf ; 
echo "<br />"; 
$all = strlen($string); 
echo $all ; 
echo "<br />"; 
$non_eng = $all - $utf ; 
echo $non_eng ; 

您将有3个非工程字符,并使用到你可以计算%的长度。

0

在英语中,你知道我们有26个没有任何变音标记(即口音)的字母。 您可以: 1)具有的大写和小写字母,数字字符和其他字符的列表,你愿意接受为“英语”存储在阵列

2)或做短切像这样:$az = range('a', 'z');这将返回所有26个字符,请确保您对大写字母和数字执行相同操作,并将这些元素添加到一个大数组中。

然后遍历文本文档中的每个字母,并将它与英文字符数组中的每个字母进行比较,您将在阅读文档时根据这些字母进行比较。

然后你就可以做的工作你的文档中找到了英文字母的百分比如下:

100/ total number of characters in the document * hits (the total number of English characters found)