preg_match_all za utf-8

e raja pravim regex za nasa i njemacka slova tj utf-8

preg_match_all(’/\w+/’, $string, $match_words);

kako ovo '/\w+/’ mogu promijeniti tako da prepoznaje nase afrikate kao i njemacka slova.

PHP: Multibyte String - Manual

ili pokušati postaviti encoding sa:

PHP: iconv - Manual

nasao sam ovu funkciju na stackoverflowu koja uzima najferkventnije rijeci iz nekog stringa i stavlja ih u associative array gdje je key taj neki keyword a key-value broj ponavljanja tog keyworda u stringu:
function extract_common_words($string, $stop_words, $max_count = 5) {
$string= iconv(‘UTF-8’, ‘ASCII//TRANSLIT’, utf8_encode($string));

  $string = preg_replace('/ss+/i', '', $string);
  $string = trim($string); // trim the string
  $string = preg_replace('/[^a-zA-Z -]/', '', $string); // only take alphabet characters, but keep the spaces and dashes too…
  $string = strtolower($string); // make it lowercase

  preg_match_all('/\b.*?\b/i', $string, $match_words);
  $match_words = $match_words[0];

  foreach ( $match_words as $key => $item ) {
      if ( $item == '' || in_array(strtolower($item), $stop_words) || strlen($item) <= 3 ) {
          unset($match_words[$key]);
      }
  }  

  $word_count = str_word_count( implode(" ", $match_words) , 1); 
  $frequency = array_count_values($word_count);
  arsort($frequency);

  //arsort($word_count_arr);
  $keywords = array_slice($frequency, 0, $max_count);
  return $keywords;

}

kao sto mozes primjetiti odmah nakon deklarisanja funkcije koristim ovu iconv funkciju, a i takodje u headeru mi je ovo:
header(‘Content-Type: text/html; charset=utf-8’);
ali opet ne dobijam zeljene rezutlate, vec su svi afrikati i ona posebna slova u njemackom samo izbaceni