这是一个支持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");
}
?>