str_ireplace不使用德语字符

时间:2011-08-04 08:48:02

标签: php string-formatting

我正在使用以下函数搜索单词并在文本中对其进行着色。除德语字符(ä,ë,ß等)外,它的效果非常好。我已经尝试编码为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 个答案:

答案 0 :(得分:2)

由于PHP中的str_函数不支持UTF,因此必须使用mb_扩展名。在您的情况下,请将str_ireplace替换为mb_eregi_replace