站内链接的正则处理

浏览:516 发布日期:2015/08/19 分类:技术分享
    $abc = '欢迎';
    
    $c='liw5ucms PHP版本即将发布,欢迎大家关注!en
    <img alt="人民" src="/images/hh/02.gif" />dfds
    <img alt="" src="/img/ad.gif" />dhh呵呵
    <a tittle="人民" href="http://www.qiusongsong.com">站长导航</a>
    啊哈哈<a href="http://www.5ucms.com">5ucms</a>啊哈哈
    <a href="http://qiusongsong.net">邱嵩松</a>tjgad';
    
    echo '原文=<br>'.$c.'<hr>';
    
    echo '替换词=<br>'.$abc.'<hr>';
    
                        // 第一步获取字符串里所有图片的正则表达式
                        preg_match_all("/<img(.*?)\>/i",$c,$arryimg);
                        $imgtimes = count($arryimg);
                        for($j=0;$j<$imgtimes;$j++){ //读取出符合的关键词名称
                            $img = $arryimg[0][$j]; 
                            $c = str_ireplace($img,'@img['.$j.']@',$c);//替换掉 变成链接
                            $qimg[$j] = $img;//存入数组
                            
                        } 
                        // 第二步获取字符串里所有超链接的正则表达式
                        preg_match_all("/<a(.*?)>(.*?)<\/a>/i",$c,$arrya);
                        $atimes = count($arrya);
                        for($j=0;$j<$atimes;$j++){ //读取出符合的关键词名称
                            $a = $arrya[0][$j]; 
                            $c = str_ireplace($a,'@a['.$j.']@',$c);//替换掉 变成链接
                            $qa[$j] = $a;//存入数组
                        }
                        
                        echo '去图+链接=<br>'.$c.'<hr>';
                        // 第三步 按指定次数替换
                        $c = str_replace($abc,'<a href="http://baidu.com" title="百度" >'.$abc.'</a>',$c);//替换掉 指定次数 变成链接
                        
                        echo '替换结果=<br>'.$c.'<hr>';
                        
                        // 第四步 恢复旧的图片
                        for($i=0;$i<count($qimg);$i++){ 
                            $c = str_replace('@img['.$i.']@',$qimg[$i],$c);//替换掉 指定次数 变成链接
                        } 
                        //第五步 恢复旧的链接
                        for($i=0;$i<count($qa);$i++){ 
                            $c = str_replace('@a['.$i.']@',$qa[$i],$c);//替换掉 指定次数 变成链接
                        }
 
     echo '还原结果=<br>'.$c;
最佳答案
评论( 相关
后面还有条评论,点击查看>>