这是一个支持 UTF-8 和希伯来语的词语计数函数。我尝试过其他函数,但它们不工作。请注意,在希伯来语中, '"' 和 '\'' 可以用在词语中,所以它们不是分隔符。此函数并不完美,我更希望使用 JavaScript 中的函数,该函数将除了 [a-zA-Zא-ת0-9_\'\"] 之外的所有字符视为分隔符,但我不知道如何在 PHP 中实现它。
我删除了一些在希伯来语中不适用的分隔符("\x20", "\xA0", "\x0A", "\x0D", "\x09", "\x0B", "\x2E")。我还删除了下划线。
这是我对该页面上之前帖子的修正 - 我发现我的函数对空字符串返回了错误的结果。我修正了它,并且我还附加了另一个函数 - my_strlen。
<?php
function count_words($string) {
$string= str_replace("'", "'", $string);
$t= array(' ', "\t", '=', '+', '-', '*', '/', '\\', ',', '.', ';', ':', '[', ']', '{', '}', '(', ')', '<', '>', '&', '%', '$', '@', '#', '^', '!', '?', '~'); $string= str_replace($t, " ", $string);
$string= trim(preg_replace("/\s+/", " ", $string));
$num= 0;
if (my_strlen($string)>0) {
$word_array= explode(" ", $string);
$num= count($word_array);
}
return $num;
}
function my_strlen($s) {
return mb_strlen($s, "UTF-8");
}
?>