PHP怎麼將某長度的子串換成*號

welchang發表於2021-09-11
在之前的文章中我們介紹了區分大小寫的獲取子串在字串中第一次或最後一次的出現位置,進而判斷檢測子串是不是存在的方法,有需要的請看《》。這次我們來帶大家瞭解一下字串替換,介紹一下使用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”,那對不對呢,我們來看看輸出結果:

1.png

是的,沒錯。在上例中,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>";
?>

輸出結果:

3.png

好了就說到這裡了,有其他想知道的,可以點選這個哦。→ →

最後給大家推薦閱讀一個經典課程《》,免費的~快來學習啊!

以上就是PHP怎麼將某長度的子串換成*號的詳細內容,更多請關注php中文網其它相關文章!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4830/viewspace-2827565/,如需轉載,請註明出處,否則將追究法律責任。

相關文章