PHP字符串替换次数控制方法

WBOY
發布: 2016-06-20 13:03:50
原創
1040 人瀏覽過

最近做的一个项目里面涉及到批量替换关键字的问题,仅替换而言没什么可说的,但这里需要的是每个关键字仅需要替换一次就可以了。查阅了php相关函数文档,发现php本身是没有函数实现这个功能的,所以不得不自己解决了。经过一番折腾总结了几种可行方法,小记一下!

(1)使用 preg_replace 函数实现这个功能,因为 preg_replace 这个函数本身是可以实现控制替换次数的,所以一开始就想到他了,具体实现方法如下://可以实现替换次数的控制,不仅限于只替换一次,比如$limit为2的时候表示一个词出现很多次的时候仅替换2次,-1表示全部替换。

$search 和 $replace 都可以是字符串或者数组,但必须对应

function str_replace_limit($search,$replace,$content,$limit=-1){<br />    if(is_array($search)){<br />        foreach ($search as $k=>$v){<br />            $search[$k]='`'.preg_quote($search[$k],'`').'`';<br />        }<br />    }else{<br />        $search='`'.preg_quote($search,'`').'`';<br />    }<br />	//把图片描述去掉<br />	$content=preg_replace("/alt=([^ >]+)/is",'',$content);<br />    return preg_replace($search,$replace,$content,$limit);<br /><p>}
登入後複製

(2)使用 substr_replace 函数来实现,不过这里仅能实现仅一次替换

//首先找到关键字所在位置,然后使用 substr_replace(系统函数)进行替换操作

function str_replace_once($search,$replace,$content){<br />	//把图片描述去掉<br />	$content=preg_replace("/alt=([^ >]+)/is",'',$content);<br />    $pos=strpos($content,$search);<br />    if($pos===false){<br />        return $haystack;<br />    }<br />    return substr_replace($content,$replace,$pos,strlen($search));<br />}
登入後複製


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