日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > php 只替換第一次出現的字符串

php 只替換第一次出現的字符串

來源:程序員人生   發布時間:2013-12-04 09:55:35 閱讀次數:3764次

在php中要替換串中指定字符我們一般會一次全部替換,如str_replace函數,但有時只想替換第一次出現的,像文章的關鍵詞替換了,這個如果有100個不可能出現100次啊,我只想限制幾次了,下面我來給各位介紹實現方法。

例:$str='這是字符串我只替換ABC一次后面的ABC我不替換了,有沒有辦法實現.';

把第一個abc替換成xyz,由于要替換的字符串是固定的,很多人想到了用str_replace()函數,看看這個函數的使用是不是我們要的.

str_replace( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

不小心還真以為是我們想要的呢,最后那個參數是返回替換發生的總次數,它是一個引用變量,而不是我要想要的指定它將替換幾次,所以用str_replace()是不行的.

preg_replace()是可以實現的,可惜用了正則,代碼如下:

$str=preg_replace('/abc/','abc',$str,1); echo $str;

例:顯示email為從@前2位(含)開始向前隱藏4位,代碼如下:

  1. function show_email_2($string){ 
  2.         $first = strpos($string'@'); 
  3.         //var_dump($first); 
  4.         if($first==1){ 
  5.             $string = '****'.$string
  6.         } 
  7.         if($first>1 && $first<=5){ 
  8.             $string = substr_replace($string,'****',0,$first-1);             
  9.         } 
  10.         if($first>5){ 
  11.             $string = substr_replace($string,'****',$first-5,4); 
  12.         } 
  13.          
  14.         var_dump($string); 
  15.         return $string
  16.     } 
  17.     //show_email_2('22@163.com');        //輸出-->****2@163.com 
  18.     //show_email_2('22@22.com');        //輸出-->****2@22.com 
  19.     show_email_2('6123456@163.com');    //輸出-->61****6@163.com 

有沒有不用正則的,嗯可以這樣

  1. $replace='xyz';  
  2. if(($position=strpos($str,$replace))!==false){  
  3.      $leng=strlen($replace);  
  4.     $str=substr_replace($str,'abc',$position,$leng);  
  5. }  
  6. echo $str

如果我想替換到指定次數可參考下面方法,代碼如下:

  1. <?php  
  2. /*  
  3.  * $text是輸入的文本;  
  4.  * $word是原來的字符串;  
  5.  * $cword是需要替換成為的字符串;  
  6.  * $pos是指$word在$text中第N次出現的位置,從1開始算起  
  7.  * */  
  8. function changeNstr($text,$word,$cword,$pos=1){  
  9. $text_array=explode($word,$text);  
  10. $num=count($text_array)-1;  
  11. if($pos>$num){  
  12. return "the number is too big!or can not find the $word";  
  13. }  
  14. $result_str='';  
  15. for($i=0;$i<=$num;$i++){  
  16. if($i==$pos-1){  
  17. $result_str.=$text_array[$i].$cword;  
  18. }else{  
  19. $result_str.=$text_array[$i].$word;} 
  20. return rtrim($result_str,$word);  
  21. }  
  22. $text='hello world hello pig hello cat hello dog hello small boy';  
  23. $word='hello';  
  24. $cword='good-bye';  
  25. echo changeNstr($text,$word,$cword,3);  
  26. //輸出:hello world hello pig good-bye cat hello dog hello small boy  
  27. ?> 

實例都很好理解,如果你不想深入了解我們直接使用str_replace即可實例了.

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 成人福利在线免费观看 | 久久成人精品 | 久久久久国产精品人 | 国偷自产视频一区二区久 | 美女又爽又黄免费视频 | 国产精品成av人在线视午夜片 | 草久在线观看视频 | 日韩视频在线一区二区 | 久久在线播放 | 美女高潮网站 | 精品视频免费 | 毛片免费观看视频 | 激情影院免费观看 | 国产成人精品一区二区三区网站观看 | 久久久久成人精品 | 婷婷综合激情 | 日韩av在线播放一区 | 亚洲欧洲精品在线 | 99热视| 国产精品66 | 中文字幕首页 | 国产三级欧美三级 | 精品国产乱码一区二区三区 | 污网站免费 | jizzjizz在线观看| 日韩欧美一区二区在线 | 国产成人精品一区二区在线 | 伊人精品成人久久综合软件 | 久久久18| 精品福利一区二区三区 | a级毛片观看 | a在线观看 | 永久91嫩草亚洲精品人人 | 日韩三级一区 | 中文字幕蜜臀av | 亚洲性激情 | 欧美日韩国产在线 | 亚洲视频一区二区 | 日韩精品视频免费专区在线播放 | 精品国产福利 | 亚洲精品av在线 |