字符串中字符的百分比是非英语的?

时间:2014-02-17 15:00:02

标签: php character-encoding

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

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

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分: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个非英语字符,并使用总长度计算%。

相关问题