• 技术文章 >后端开发 >PHP问题

    php正则如何实现全部替换字符串

    藏色散人藏色散人2020-11-17 09:40:40原创86

    php正则全部替换字符串的实现方法:首先用preg_match()函数匹配所有字符串;然后遍历数组;接着用strpos函数计算位置;最后用substr_replace函数替换指定位置的字符串即可。

    推荐:《PHP视频教程

    php 替换 字符串中的 多个 不同字符

    有两个函数可以替换字符串

    思路是用preg_match()函数先匹配所有字符串 遍历数组 strpos()计算位置 用substr_replace()来替换指定位置的字符串。

    例如:替换一个html页面中的所有a标签

    function getAarr($str){
        //拿出网页中所有a标签放到数组
        $reg1="/<a[\s\S]*?>[\s\S]*?<\/a>/";
        $aarray = array();//这个存放的就是正则匹配出来的所有《a》标签数组
        preg_match_all($reg1,$str,$aarray);
        return $aarray[0];
    }
    function replace($sou_str,$urls){
        $arr_a = getAarr($sou_str);
        shuffle($urls);
        foreach($arr_a as $i=> $one){
            $begin = strpos($sou_str,$one);//开始位置
            $length = strlen($one);//字符串长度
            if(!isset($urls[$i])){
                $urls[$i]['name'] = str_replace(" ","",strip_tags($one));
                $urls[$i]['url'] = "./?".$urls[$i]['name'];
                $urls[$i] = "<a target='_blank' href='".$urls[$i]['url']."' title='".$urls[$i]['name']."'>".$urls[$i]['name']."</a>";
            }else{
                $urls[$i] = "<a target='_blank' href='".$urls[$i]['url']."' title='".$urls[$i]['name']."'>".$urls[$i]['name']."</a>";
            }
            if ($begin!==false){
                $sou_str = substr_replace($sou_str,$urls[$i],$begin,$length);
            }
        }
        return $sou_str;
    }

    以上就是php正则如何实现全部替换字符串的详细内容,更多请关注php中文网其它相关文章!

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!
    专题推荐:php
    上一篇:php 商品筛选功能如何实现的 下一篇:php不执行后面的代码怎么办
    第14期线上培训班

    相关文章推荐

    • php 正则如何删除字符串• 详细讲解 Python中的正则表达式• php正则表达式如何实现替换• php 正则表达式字符如何转义

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网