本帖最后由 sujunlin_1987 于 2010-03-19 20:43:51 编辑

解决方案 »

  1.   

    <?
    while($rs=mysql_fetch_array($result)){
    $NerworkName=$rs["NerworkName"];
    if (is_array($search_array)){
        $search_array=implode("|",$search_array);
    }
    $NerworkName=preg_replace("/($search_array)/i","<font style='color:#aa1234'>\\1</font>",$NerworkName);
    ?>
        <div id="x_<?=$rs["ID"]?>" class="list_main">
            <div class="list"><?=$NerworkName?></div>
        </div>    
    <?
    }
    ?>
      

  2.   

     $NerworkName=preg_replace("/($search_array[$i])/i","<font style='color:#aa1234'>\\1</font>",$NerworkName);这句有问题! 不知道怎么改
    如果我搜索的是 "1 2"内容会错乱 原因是'color:#aa1234'
    如果输入"1"或不包含aa1234的字母或数字 就没问题!数据库数据:123123
    搜索"1" 结果为<font style='color:#aa1234'>1</font>23<font style='color:#aa1234'>1</font>23
    搜索"1 2" 结果为234'>1<font style='color:#aa1234'>2</font>3234'>1<font style='color:#aa1234'>2</font>3
      

  3.   

     $NerworkName=preg_replace("/($search_array[$i])/i","<font style='color:#aa1234'>\\1</font>",$NerworkName);数据库数据:789789
    搜索"7 8 9" 结果正确数据库数据:123123
    搜索"1 2 3" 结果错误
      

  4.   


    试了和我原先效果一样!
    错误应该是在这句
     $NerworkName=preg_replace("/($search_array[$i])/i","<font style='color:#aa1234'>\\1</font>",$NerworkName);
      

  5.   


    <?
    $NerworkName="1245367890abcdefghi";
    $search_array=array(1,2,3);
    if (is_array($search_array)){
        $search_array=implode("|",$search_array);
    }
    $NerworkName=preg_replace("/($search_array)/i","<font style='color:#aa1234'>\\1</font>",$NerworkName);
    echo $NerworkName."<br>";//1245367890abcdefghi 1、2、3都是有色的
    echo htmlspecialchars($NerworkName);//<font style='color:#aa1234'>1</font><font style='color:#aa1234'>2</font>45<font style='color:#aa1234'>3</font>67890abcdefghi
    ?>
      

  6.   

    我也是碰到类似问题;date='$cur_user=33011011';
        echo $date.'<br />';
        echo $dat=preg_replace("/^[1-9]{2}[0-1][0-9]{3}[1][1-3]$/","33000111",$date);
    这个替换不了