php正規如何實作全部替換字串

藏色散人
發布: 2023-03-07 16:16:02
原創
2869 人瀏覽過

php正規則全部替換字串的實作方法:先用preg_match()函數來匹配所有字串;然後遍歷數組;接著用strpos函數計算位置;最後用substr_replace函數替換指定位置的字串即可。

php正規如何實作全部替換字串

推薦:《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][&#39;name&#39;] = str_replace(" ","",strip_tags($one));
            $urls[$i][&#39;url&#39;] = "./?".$urls[$i][&#39;name&#39;];
            $urls[$i] = "<a target=&#39;_blank&#39; href=&#39;".$urls[$i][&#39;url&#39;]."&#39; title=&#39;".$urls[$i][&#39;name&#39;]."&#39;>".$urls[$i][&#39;name&#39;]."</a>";
        }else{
            $urls[$i] = "<a target=&#39;_blank&#39; href=&#39;".$urls[$i][&#39;url&#39;]."&#39; title=&#39;".$urls[$i][&#39;name&#39;]."&#39;>".$urls[$i][&#39;name&#39;]."</a>";
        }
        if ($begin!==false){
            $sou_str = substr_replace($sou_str,$urls[$i],$begin,$length);
        }
    }
    return $sou_str;
}
登入後複製

以上是php正規如何實作全部替換字串的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板