舉個例子:
"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));
}