我有这个文字:
$text = "Başka,küskün otomobil kaçtı buraya küskün otomobil neden kaçtı kaçtı buraya,oraya KISMEN @here #there J.J.Johanson hep. Danny:Where is mom? I don't know! Café est weiß for 2 €uros. My 2nd nickname is mike18.";
最近我在用这个.
$a1= array_count_values(str_word_count($text,1,'ÇçÖöŞşİIıĞğÜü@#é߀1234567890')); arsort($a1);
你可以检查这个小提琴:
http://ideone.com/oVUGYa
但是这个解决方案并不能解决所有的UTF8问题.我不能将whole UTF8 set写入str_word_count作为参数.
所以我创建了这个:
$wordsArray = explode(" ",$text); foreach ($wordsArray as $k => $w) { $wordsArray[$k] = str_replace(array(",","."),"",$w); } $wordsArray2 = array_count_values($wordsArray); arsort($wordsArray2);
输出应该是这样的:
Array ( [kaçtı] => 3 [küskün] => 2 [buraya] => 2 [@here] => 1 [#there] => 1 [Danny] => 1 [mom] => 1 [don't] => 1 [know] => 1 ... ... )
这很好,但并不涵盖所有的句子问题.例如,我用str_replace删除逗号和点.
例如,这个解决方案不包括这样的话:你好,你好吗?迈克,怎么不会被视为不同的话.
这在str_word_count解决方案中没有涵盖:KISMEN @here #there.在短划线上,不会被考虑.
这不包括J.J.Johanson.虽然这是一个字,它将被视为JJJohanson
问题,感叹号应该被删除.
有没有更好的方法来获得支持UTF8的str_word_count行为?在这个问题的顶部存在的$文本是我的参考.
(如果你能提供一个小提琴你的答案会更好)