本帖最后由 roha 于 2010-03-08 11:16:09 编辑

解决方案 »

  1.   


    $str = '<a href="http://bay-hzrb.hangzhou.com.cn/system/2010/03/08/010468850.shtml" target=_blank><span><b><font color="#C60A00">导演</font>杜琪峰想把<font color="#C60A00">犀利哥</font>拍成电影(图)</b></span></a>';$str = preg_replace('/(\<a.+)(target=[\'\"]{0,}\_blank[\'\"]{0,}.+\<\/a\>)/Uis', "$1 title=\"".preg_replace('/\<[^\>]+\>/', '', $str)."\" $2", $str);echo $str;
      

  2.   

    SORRY如果$str还有其他字符该怎么替换?如
    $str = '<a href="http://bay-hzrb.hangzhou.com.cn/system/2010/03/08/010468850.shtml" target=_blank><span><b><font color="#C60A00">导演</font>杜琪峰想把<font color="#C60A00">犀利哥</font>拍成电影(图)</b></span></a>sklfjasldkfjsadofisdfjoisd';
      

  3.   

    就是将
    $str = ' <a href="http://bay-hzrb.hangzhou.com.cn/system/2010/03/08/010468850.shtml" target=_blank> <span> <b> <font color="#C60A00">导演 </font>杜琪峰想把 <font color="#C60A00">犀利哥 </font>拍成电影(图) </b> </span> </a>具体内容介绍...内容不一样的字符'; 替换成
    $str = ' <a href="http://bay-hzrb.hangzhou.com.cn/system/2010/03/08/010468850.shtml" title="导演杜琪峰想把犀利哥拍成电影(图)" target=_blank> <span> <b> <font color="#C60A00">导演 </font>杜琪峰想把 <font color="#C60A00">犀利哥 </font>拍成电影(图) </b> </span> </a>具体内容介绍...内容不一样的字符'; 
      

  4.   

    多看看正则,可能还要根据你的要求作点修改$str = '<a href="http://bay-hzrb.hangzhou.com.cn/system/2010/03/08/010468850.shtml" target=_blank><span><b><font color="#C60A00">导演</font>杜琪峰想把<font color="#C60A00">犀利哥</font>拍成电影(图)</b></span></a>';$str = preg_replace('/(\<a.+)(target=[\'\"]{0,}\_blank[\'\"]{0,}.+)/Uis', "$1 title=\"".preg_replace('/\<[^\>]+\>/', '', $str)."\" $2", $str);echo $str;
      

  5.   

    4楼您好您这个正则如果仅仅替换链接完全可以,但是如果链接外再加一些不固定的字符时不需要替换的,哪么就不行了
    您的这个正则将
    <a href="http://topic.csdn.net">文字</a>
    替换成
    <a href="http://topic.csdn.net" title="文字">文字</a>
    完全好用但是如果将
    <a href="http://topic.csdn.net">文字</a>不一样的内容详情
    替换成
    <a href="http://topic.csdn.net" title="文字">文字</a>不一样的内容详情
    就不行了对正则不了解,求解!
      

  6.   

    $str = '<a href="http://bay-hzrb.hangzhou.com.cn/system/2010/03/08/010468850.shtml" target=_blank><span><b><font color="#C60A00">导演</font>杜琪峰想把<font color="#C60A00">犀利哥</font>拍成电影(图)</b></span></a>asdad
    faf<a href="http://bay-hzrb.hangzhou.com.cn/system/2010/03/08/sadafa.shtml" target=_blank><span><b><font color="#C60A00">演员</font>张小三想把
    <font color="#C60A00">犀利哥</font>拍成电影(图)</b></span></a>asdadfaf';
    $str = preg_replace('#(<a .*)(>.*</a>)#Uise',"stripcslashes('$1 title=\"'.preg_replace('/\s/','',strip_tags('$0')).'\"$2')",$str);
    echo $str;
      

  7.   

    $html =<<< HTML
    <a href="http://bay-hzrb.hangzhou.com.cn/system/2010/03/08/010468850.shtml" target=_blank><span><b><font color="#C60A00">导演</font>杜琪峰想把<font color="#C60A00">犀利哥</font>拍成电影(图)</b></span></a>
    HTML;$p = "#(<a .+)(>)(.+?)(</a>)#iUe";
    echo preg_replace($p, "'$1'.' title=\"'.strip_tags('$3').'\" '.'$2$3'", $html);<a href=\"http://bay-hzrb.hangzhou.com.cn/system/2010/03/08/010468850.shtml\" target=_blank title="导演杜琪峰想把犀利哥拍成电影(图)" ><span><b><font color=\"#C60A00\">导演</font>杜琪峰想把<font color=\"#C60A00\">犀利哥</font>拍成电影(图)</b></span>
      

  8.   

    我建议用正则匹配到<span></span>里的所有字符  去掉html标签   然后再替换