最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

str_replace只替換一次字符串的方法

 更新時(shí)間:2013年04月09日 09:57:47   作者:  
我們都知道,在PHP里Strtr,strreplace等函數(shù)都可以用來(lái)替換,不過(guò)他們每次替換的時(shí)候都是全部替換,但是如果你想只替換一個(gè)或兩個(gè)怎么辦呢?看下邊的解決方法

   我們都知道,在PHP里Strtr,strreplace等函數(shù)都可以用來(lái)替換,不過(guò)他們每次替換的時(shí)候都是全部替換,舉個(gè)例子:
"abcabbc",這個(gè)字符串如果使用上邊的函數(shù)來(lái)把其中的b替換掉,那么他會(huì)全部替換掉,但是如果你想只替換一個(gè)或兩個(gè)怎么辦呢?看下邊的解決方法:
     這是個(gè)比較有點(diǎn)意思的問(wèn)題,正好之前也做過(guò)類似的處理,當(dāng)時(shí)我是直接利用preg_replace實(shí)現(xiàn)的。

mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )
     在 subject 中搜索 pattern 模式的匹配項(xiàng)并替換為 replacement。如果指定了 limit,則僅替換 limit 個(gè)匹配,如果省略 limit 或者其值為 -1,則所有的匹配項(xiàng)都會(huì)被替換。
     因?yàn)閜reg_replace的第四個(gè)參數(shù)可以實(shí)現(xiàn)替換次數(shù)的限制,所以這個(gè)問(wèn)題這樣處理很方便。但是在查看php.net上關(guān)于str_replace的函數(shù)評(píng)論后,從中居然也可以挑出幾個(gè)有代表性的函數(shù)來(lái)。

str_replace_once
思路首先是找到待替換的關(guān)鍵詞的位置,然后利用substr_replace函數(shù)直接替換之。

復(fù)制代碼 代碼如下:

<?php 

function str_replace_once($needle, $replace, $haystack) { 

// Looks for the first occurence of $needle in $haystack 

// and replaces it with $replace. 

$pos = strpos($haystack, $needle); 

if ($pos === false) { 

return $haystack; 

return substr_replace($haystack, $replace, $pos, strlen($needle)); 

?> 

str_replace_limit
還是利用preg_replace,只不過(guò)它的參數(shù)更象preg_replace了,而且對(duì)某些特殊字符做了轉(zhuǎn)義處理,通用性更好。

復(fù)制代碼 代碼如下:

<? 

function str_replace_limit($search, $replace, $subject, $limit=-1) { 

// constructing mask(s)... 

if (is_array($search)) { 

foreach ($search as $k=>$v) { 

$search[$k] = '`' . preg_quote($search[$k],'`') . '`'; 

}

else { 

$search = '`' . preg_quote($search,'`') . '`'; 

// replacement 

return preg_replace($search, $replace, $subject, $limit); 

?> 

相關(guān)文章

最新評(píng)論

达州市| 广平县| 雷州市| 鄂州市| 渑池县| 定西市| 本溪| 许昌市| 巴林左旗| 高雄市| 通州市| 年辖:市辖区| 舞阳县| 沙田区| 蒙阴县| 两当县| 手游| 五寨县| 孟津县| 柘荣县| 浦北县| 谷城县| 泰安市| 广饶县| 五台县| 察哈| 高台县| 临夏县| 泰来县| 温泉县| 石河子市| 铜梁县| 腾冲县| 日土县| 苏尼特右旗| 平度市| 山东省| 湖南省| 璧山县| 宣城市| 普陀区|