簡體   English   中英

字符串中有多少百分比的字符是非英語的?

[英]What percentage of the characters in a string are non-english?

PHP中有一種簡單的方法可以判斷字符串中非英語字符的百分比嗎?

我要實現的目標是根據描述檢測列表中的非英文項目,並且該百分比也用於說明英文文本中可能還會出現的特殊字符。 例如。 非英語字符少於5%的人不一定表示該文本不是英語,而非英語字符則為95%。

在英語中,您知道我們有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

這是一個例子

 $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個非英語字符,並使用總長度可以計算%。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM