這裡有一個支援 UTF-8 和希伯來文的字數計算函式。我嘗試了其他函式,但它們都無法正常運作。請注意,在希伯來文中,雙引號「"」和單引號「'」可以用在單字中,因此它們不是分隔符號。這個函式並不完美,我更喜歡我們在 JavaScript 中使用的一個函式,它將除了 [a-zA-Zא-ת0-9_\'\"] 之外的所有字元都視為分隔符號,但我不知道如何在 PHP 中做到這一點。
我移除了一些與希伯來文不相容的分隔符號 ("\x20", "\xA0", "\x0A", "\x0D", "\x09", "\x0B", "\x2E")。我也移除了底線。
這是對我之前在此頁面上發佈文章的修正——我發現我的函式在處理空字串時會返回不正確的結果。我已更正它,並且還附上另一個函式——my_strlen。
<?php
函式 count_words($string) {
$string= str_replace("'", "'", $string);
$t= 陣列(' ', "\t", '=', '+', '-', '*', '/', '\\', ',', '.', ';', ':', '[', ']', '{', '}', '(', ')', '<', '>', '&', '%', '$', '@', '#', '^', '!', '?', '~'); $string= str_replace($t, " ", $string);
$string= trim(preg_replace("/\s+/", " ", $string));
$num= 0;
如果 (my_strlen($string)>0) {
$word_array= explode(" ", $string);
$num= count($word_array);
}
回傳 $num;
}
函式 my_strlen($s) {
回傳 mb_strlen($s, "UTF-8");
}
?>