php如何實現只替換一次或N次

舉個例子:
"aaabbbccc", 如果你想只替換一個b或兩個b怎麼辦呢?
    方法1:直接利用preg_replace

     mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )
     在subject 中搜索pattern 模式的匹配項並替換爲replacement。如果指定了 limit,則僅替換 limit 個匹配,如果省略 limit 或者其值爲 -1,則所有的匹配項都會被替換。

方法二:str_replace_once
思路首先是找到待替換的關鍵詞的位置,然後利用substr_replace函數直接替換之。

        /**
         * 字符串替換
         * Author:劉星麟
         * @param $needle
         * @param $replace
         * @param $haystack
         * @return mixed
         */
        function str_replace_once($needle, $replace, $haystack)
        {
            $pos = strpos($haystack, $needle);
            if ($pos === false) {
                return $haystack;
            }
            return substr_replace($haystack, $replace, $pos, strlen($needle));
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章