PHP中有一種簡單的方法可以告訴字符串中字符的百分比是非英語嗎?字符串中字符的百分比是非英文的?
我想要實現的是根據說明在列表中檢測非英語項目,並使用百分比來說明可能存在於英文文本中的特殊字符。例如。只有少於5%的非英文字符並不一定意味着文本不是英文的,而是95%的非英文字符。
PHP中有一種簡單的方法可以告訴字符串中字符的百分比是非英語嗎?字符串中字符的百分比是非英文的?
我想要實現的是根據說明在列表中檢測非英語項目,並使用百分比來說明可能存在於英文文本中的特殊字符。例如。只有少於5%的非英文字符並不一定意味着文本不是英文的,而是95%的非英文字符。
那麼有這樣做的沒有直接的方法,但是這可能使用幫助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個非工程字符,並使用到你可以計算%的長度。
在英語中,你知道我們有26個沒有任何變音標記(即口音)的字母。 您可以: 1)具有的大寫和小寫字母,數字字符和其他字符的列表,你願意接受爲「英語」存儲在陣列
2)或做短切像這樣:$az = range('a', 'z');
這將返回所有26個字符,請確保您對大寫字母和數字執行相同操作,並將這些元素添加到一個大數組中。
然後遍歷文本文檔中的每個字母,並將它與英文字符數組中的每個字母進行比較,您將在閱讀文檔時根據這些字母進行比較。
然後你就可以做的工作你的文檔中找到了英文字母的百分比如下:
100/ total number of characters in the document * hits (the total number of English characters found)
使用mb_strlen()獲取字符串的長度;使用preg_match()來獲得字符[A-Z]的計數,並做一些數學計算 –