为什么用下面代码进行替换.怎么老是吃掉前面的一个字符......代码如下:这两句代码都有这个问题...
        $newstext = preg_replace('/'.$r[keyname].'/u','<a href=\''.$r[keyurl].'\' target=\'_blank\' >'.$r[keyname].'</a>',$newstext,$public_r[repkeynum]);        $newstext = preg_replace('/[^=>]'.$r[keyname].'/u','<a href=\''.$r[keyurl].'\' target=\'_blank\' >'.$r[keyname].'</a>',$newstext,$public_r[repkeynum]);
比如说...string = "我的美好一天从此开始了"
关键词是 : 美好替换后就成了 : 我<a href=xx>美好</a>一天从此开始了搞的我好郁闷啊....

解决方案 »

  1.   

    $new_str = str_replace('美好','<a href=xx>美好</a>',$str);
      

  2.   

    <?php
    $r = array();
    $r['keyname'] = '美好';
    $r['keyurl'] = 'www.linktest.com';
    $newstext = '我的美好一天从此开始了';
    $newstext = preg_replace('/'.$r['keyname'].'/u','<a href=\''.$r['keyurl'].'\' target=\'_blank\' >'.$r['keyname'].'</a>',$newstext);
    echo $newstext;
    ?>
    显示结果为:
    我的<a href='www.linktest.com' target='_blank' >美好</a>一天从此开始了
    没有任何问题啊。还有,建议数组的key值用单引号,$r[keyname]不建议,建议为$r['keyname']。