PHP substr_replace 函式可以用來將字串中的某的部分,用其他的字串替換掉,設計師可以設定要替換的新字串、要從哪個地方開始算起以及要替換的字串長度,在 PHP 4.3.3 版本開始,substr_replace 函式也開始支援 Array 的陣列元素替換。請注意,substr_replace 函式是在副本中進行字串替換,處理完成後返回一個字串結果,如果處理的是陣列,則反回一個陣列。
PHP substr_replace 基本語法
substr_replace ( $string , $replacement , $start , $length )PHP substr_replace 函式共有 4 個參數,第一個參數 $string 為原始字串或原始陣列,第二個參數 $replacement 是要替換的字串內容,第三個參數 $start 是要替換的字串起算位置,這個參數可以為正整數或負整數,當 $strat 為正整數,替換的位置將從 $string 的第 $start 位置開始,如果 $start 為負整數,替換則從 $string 的倒數第 $start 的位置開始算。最後一個參數 $length 是要替換的字串長度,選擇項目,不一定要使用,如果是正整數,就是代表要取代掉的字串長度,如果是負整數,則代表替代字串尾端距離原始字串 $string 尾端的字元數,如果為填寫,則預設代表 strlen($string),即為原始字串的長度,如果寫 0,代表替代字串 $replacement 將直接插入到 $start 設定的位置。
PHP substr_replace 範例一、字串的替換
$MyString = 'ABCDEF';
// 用 ZZZ 取代原始字串
echo substr_replace($MyString, 'ZZZ', 0).'
';
echo substr_replace($MyString, 'ZZZ', 0, strlen($MyString)).'
';
// 將 ZZZ 插入到原始字串開頭處
echo substr_replace($MyString, 'ZZZ', 0, 0).'
';
// 用 ZZZ 取代原始字串的字母 E
echo substr_replace($MyString, 'ZZZ', 3, -1).'
';
echo substr_replace($MyString, 'ZZZ', -3, -1).'
';
// 將原始字串的字母 D 用空值取代
echo substr_replace($MyString, '', 3, 1);
?>範例輸出結果
ZZZ
ZZZ
ZZZABCDEF
ABCZZZF
ABCZZZF
ABCEF只要掌握住 $start 與 $length 這兩個參數的用法,幾乎就能掌握 PHP substr_replace 函式。
PHP substr_replace 範例二、陣列的替換
$MyArray = array('A:ZZZ','B:ZZZ','C:ZZZ');
// 用 YYY 取代原始陣列中的 ZZZ
print_r(substr_replace($MyArray,'YYY',2,3));
// 用對應的陣列元素取代原始陣列元素
$replace = array('AAA','BBB','CCC');
print_r(substr_replace($MyArray, $replace,2,3));
// 用陣列的值控制原始陣列元素被取代的字串長度
$length = array(1, 2, 3);
print_r(substr_replace($MyArray,$replace,2,$length));
?>範例輸出結果
PHP substr_replace 函式在陣列中使用的變化相當多,也是設計師常用來替代陣列元素的一個函式。
延伸閱讀