Функция str_word_count () возвращает массив, содержащий все слова в строке.Отлично работает, кроме случаев использования специальных символов.В этом случае скрипт php получает строку через строку запроса:
Когда я открываю: http://localhost/index.php?q=this%20wórds
header('Content-Type: text/html; charset=utf-8');
print_r(str_word_count($_GET['q'],1,'ó'));
Вместо возврата:
[0] this
[1] wórds
...it возвращает:
[0] this
[1] w
[2] rds
Как эта функция поддерживает те специальные символы, которые отправляются через строку запроса?
Обновление - с помощью * все работало нормально1019 * Марио решение:
function sanitize_words($string) {
preg_match_all("/\p{L}[\p{L}\p{Mn}\p{Pd}'\x{2019}]*/u",$string,$matches,PREG_PATTERN_ORDER);
return $matches[0];
}