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

php如何實現(xiàn)只替換一次或N次

 更新時間:2015年10月29日 16:25:52   投稿:lijiao  
這篇文章主要介紹了php如何實現(xiàn)只替換一次或只替換N次,通過一個簡單的例子引入主題,感性的朋友可以參考一下

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

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

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

<?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) {
// Nothing found
return $haystack;
}
return substr_replace($haystack, $replace, $pos, strlen($needle));
}
?>

方法二、str_replace_limit
思路還是利用preg_replace,只不過它的參數(shù)更象preg_replace了,而且對某些特殊字符做了轉義處理,通用性更好。

<?
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);
}
?>

大家可以結合小編之前整理的一篇文章《php關鍵字僅替換一次的實現(xiàn)函數(shù)》一起學習,相信大家會有意想不到的收獲。

相關文章

  • PHP實現(xiàn)通用alert函數(shù)的方法

    PHP實現(xiàn)通用alert函數(shù)的方法

    這篇文章主要介紹了PHP實現(xiàn)通用alert函數(shù)的方法,實例分析了php自定義alert函數(shù)實現(xiàn)提示信息的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-03-03
  • php 下載保存文件保存到本地的兩種實現(xiàn)方法

    php 下載保存文件保存到本地的兩種實現(xiàn)方法

    以下是對php下載保存文件保存到本地的兩種實現(xiàn)方法進行了介紹,需要的朋友可以過來參考下
    2013-08-08
  • PHP靜態(tài)成員變量

    PHP靜態(tài)成員變量

    本文主要介紹了PHP靜態(tài)成員變量的相關知識。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • php語言流程控制中的主動與被動

    php語言流程控制中的主動與被動

    首先先祝廣大的phper們光棍節(jié)快樂, 有時放下鍵盤, 尋找真愛才是當務之急
    2012-11-11
  • php實現(xiàn)留言板功能

    php實現(xiàn)留言板功能

    本文主要介紹了php實現(xiàn)留言板功能的實例,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • 探討GDFONTPATH能否被winxp下的php支持

    探討GDFONTPATH能否被winxp下的php支持

    本篇文章是對關于GDFONTPATH能否被winxp下的php支持進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • 淺析PHP Socket技術

    淺析PHP Socket技術

    使用并發(fā)起一個阻塞式(block)連接,即服務器如果不返回數(shù)據(jù)流,則一直保持連接狀態(tài),一旦有數(shù)據(jù)流傳入,取得內容后就立即斷開連接
    2013-08-08
  • PHP數(shù)據(jù)庫處理封裝類實例

    PHP數(shù)據(jù)庫處理封裝類實例

    這篇文章主要介紹了PHP數(shù)據(jù)庫處理封裝類,結合完整實例形式分析了php基于mysqli封裝的數(shù)據(jù)庫連接及增刪改查等操作,需要的朋友可以參考下
    2016-12-12
  • php+mysql大量用戶登錄解決方案分析

    php+mysql大量用戶登錄解決方案分析

    這篇文章主要介紹了php+mysql大量用戶登錄解決方案,較為詳細的分析了大量用戶登錄時負載過大的解決方案,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-12-12
  • 關于PHP5 Session生命周期介紹

    關于PHP5 Session生命周期介紹

    PHP5有很多值得學習的地方,這里我們主要介紹PHP5 Session的使用,Session 是如何來判斷客戶端用戶的呢?
    2010-03-03

最新評論

奉节县| 启东市| 清远市| 伊通| 巴彦县| 利辛县| 仙游县| 盘锦市| 乌海市| 敦煌市| 资兴市| 南靖县| 博客| 民乐县| 扶沟县| 拜城县| 钟山县| 辽中县| 镇雄县| 嘉善县| 庆城县| 启东市| 湘乡市| 沙河市| 江西省| 全州县| 宁蒗| 芜湖市| 三江| 磐石市| 太湖县| 沅江市| 宝鸡市| 任丘市| 烟台市| 古浪县| 将乐县| 内乡县| 清丰县| 莱西市| 宜城市|