После попытки выяснить, как иметь эффективный счетчик слов в строке, я знаю о существующей функции, которая есть в PHP str_word_count
но, к сожалению, он не делает того, что мне нужно, потому что мне нужно будет подсчитать количество слов, включающих английские, китайские, японские и другие символы с диакритическими знаками.
Однако str_word_count
не может подсчитать количество слов, если вы не добавите символы в третьем аргументе, но это безумие, это может означать, что мне нужно добавить каждый отдельный символ в китайских, японских, акцентированных символах (и т. д. ) язык, но это не то, что мне нужно.
Тесты:
str_word_count('The best tool'); // int(3)
str_word_count('最適なツール'); // int(0)
str_word_count('最適なツール', 0, '最ル'); // int(5)
Во всяком случае, я нашел эту функцию в Интернете, она может работать, но, к сожалению, она не учитывается:
function word_count($str)
{
if($str === '')
{
return 0;
}
return preg_match_all("/\p{L}[\p{L}\p{Mn}\p{Pd}'\x{2019}]*/u", $str);
}
Тесты:
word_count('The best tool') // int(3)
word_count('最適なツール'); // int(1)
// With spaces
word_count('最 適 な ツ ー ル'); // int(5)
В основном я ищу хороший счетчик слов с поддержкой UTF-8, который может подсчитывать слова из каждого типичного слова/символа с акцентом/языка - есть ли возможное решение для этого?