str_ireplace не работает с немецкими символами - PullRequest
1 голос
/ 04 августа 2011

Я использую следующую функцию для поиска слов и раскраски их внутри текста. Он отлично работает, за исключением немецких символов (ä, ë, ß и т. Д.). Я уже пытался кодировать в utf, декодировать, проверял свои метатеги и все остальное, но проблема не в кодировке, так как они правильно отображаются на сайте, они просто не «окрашены» этой функцией:

function highlight($keyword, $input, $linktext, $color){
    $text = $input;
        $word = $keyword;
        $text = str_ireplace(" ".$word, ' <span id="">' . $word . '</span>', $text);

        $iteration = 1;
        while (true) {
          $text = preg_replace('/<span.id="">' . $word . '<\/span>/imsxU', '<span style="background:'.$color.'" class="keyword" id="link' . 
                               $iteration . "\" onclick=\"setLink2('$keyword','$linktext',$iteration)\">" . $word . '</span>', $text, 1, $count);
          if (!$count) {
            break;
          }
          $y++;
          $iteration++;
        }

        return $text;

}

Есть идеи, как мне этого добиться? Я также попытался заменить их, но немецкие слова должны появиться так, как они есть в тексте, так что ничего не стоит = /

1 Ответ

2 голосов
/ 04 августа 2011

, поскольку функции str_ в PHP не поддерживают UTF, вы должны использовать расширение mb_.В вашем случае замените str_ireplace на mb_eregi_replace

...