在先前的文章中我們介紹了區分大小寫的獲取子字串在字串中第一次或最後一次的出現位置,進而判斷檢測子字串是不是存在的方法,有需要的請看《PHP字串學習之偵測子字串是不是存在(大小寫敏感)》。這次我們來帶大家了解字串替換,介紹一下使用PHP將某長度的子字串換成*號的方法。
PHP中提供了多個可以進行字串替換的函數,但它們進行替換的方式是不一樣的。有些是直接給出需要替換的子字串,有些就是給出替換開始的位置,和替換長度。今天我們就來了解後一種方法。
我們來看看下面一個例子:
<?php $str = 'hello,world,hello,world'; $replace = '*'; echo substr_replace($str, $replace, 0,5)."<br>"; echo substr_replace($str, $replace, 6,5)."<br>"; ?>
看這個程式碼,你們覺得會輸出什麼?是不是應該輸出“*,world,hello,world
”和“hello,*,hello,world
”,那對不對呢,我們來看看輸出結果:
是的,沒錯。在上例中,substr_replace()函數分別將字串$str
從第一個字元開始,有5個字元長度的子字串「hello
」和從第7個字元開始,有5個字元長度的子字串「world
」替換成了*
號。
好了,了解如何將某長度的子字串換成*號,下面我們來了解實現這個函數的函數substr_replace()。
substr_replace($string,$replacement,$start,$length)
函數接受了三個必要參數$string
、$replacement
(替換值)和$start
(替換開始的位置),一個可省略的參數$length
(要替換的字元數目)。
substr_replace()函數可以在字串$string
的副本中將由$start
和$length
參數限定的子字串使用$replacement
進行替換。
簡單來說,就是使用$replacement
值從$start
位置開始(註,字串位置起始於0),替換$length
數目的字元。
$start
有三種取值情況:
為正數,替換將從 $string 的 $start 位置開始。
為0 ,替換將從 $string 的第一個字元開始
為負數,替換將從$string的倒數第$start 個位置開始。
$length
參數有四個取值情況:
為正數,就表示被取代的子字串的長度。
為負數,就表示待替換的子字串結尾處距離 $string 末端的字元數。
為0,那麼substr_replace()函數就有了插入功能,會將$replacement
插入$start
位置處。
如果省略此參數,那麼預設為 strlen(string)(字串的長度),即替換從 $start 位置開始的整個子字串。
<?php $str = 'hello,world,hello,world'; $replace = '*'; echo substr_replace($str, $replace, 0,-5)."<br>"; echo substr_replace($str, $replace, -5,5)."<br>"; echo substr_replace($str, $replace, 6)."<br>"; ?>
輸出結果:
#好了就說到這裡了,有其他想知道的,可以點擊這個哦。 → →php影片教學
最後給大家推薦閱讀一個經典課程《PHP字串處理(玉女心經版)》,免費的~快來學習啊!
以上是PHP怎麼將某長度的子字串換成*號的詳細內容。更多資訊請關注PHP中文網其他相關文章!