2014-02-17 93 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)