Php匹配单词代码不能在php 5.1.6上运行

时间:2010-07-13 06:50:18

标签: php match words

我有一段代码可以在我的本地测试服务器上运行正常但在实时服务器上由于某种原因它没有。 实时服务器上的Php版本是5.1.6。

$subject = 'random words to check';   
$terms = explode(' ', 'word1 word2 check');
$wordIndex = array_flip(preg_split('/\P{L}+/u', mb_strtolower($subject), -1, PREG_SPLIT_NO_EMPTY));
foreach ($terms as $term) {
    if (isset($wordIndex[$term])) {
        echo "match>".$term;
    }
}

2 个答案:

答案 0 :(得分:0)

首先使用一些基本的调试来发现每个系统上发生的事情

  • 转储mb_strtolower
  • 的输出
  • 转储preg_split
  • 的输出
  • 转储array_flip
  • 的输出

答案 1 :(得分:0)

您可以尝试用

替换preg_split
$wordIndex = array_flip(str_word_count(mb_strtolower($subject), 2));

如果你正在使用多字节字符串,你可能还需要str_word_count的额外第3个参数