日期:2014-05-17  浏览次数:20425 次

替换preg_replace.怎么老是【吃掉】前面的一个字符...
为什么用下面代码进行替换.怎么老是吃掉前面的一个字符......

代码如下:这两句代码都有这个问题...

PHP code

        $newstext = preg_replace('/'.$r[keyname].'/u','<a href=\''.$r[keyurl].'\' target=\'_blank\' >'.$r[keyname].'</a>',$newstext,$public_r[repkeynum]);



PHP code

        $newstext = preg_replace('/[^=>]'.$r[keyname].'/u','<a href=\''.$r[keyurl].'\' target=\'_blank\' >'.$r[keyname].'</a>',$newstext,$public_r[repkeynum]);



比如说...string = "我的美好一天从此开始了"
关键词是 : 美好

替换后就成了 : 我<a href=xx>美好</a>一天从此开始了

搞的我好郁闷啊....

------解决方案--------------------
不会出现你说的情况。你的 $r[keyname] 是什么东西?
------解决方案--------------------
第一式正确
第二式是你说的现象: [^=>] 会吃掉一个字符
------解决方案--------------------
求解
------解决方案--------------------
<?php

$str = "我的美好的一天开始了";
$newstext = preg_replace('/美好/', '<a href=\'aaa.com\' target=\'_blank\' >美好</a>', $str);
echo $newstext;
?>