str_replace

(PHP 4, PHP 5, PHP 7, PHP 8)

str_replace子字符串替換

說(shuō)明

str_replace(
    mixed $search,
    mixed $replace,
    mixed $subject,
    int &$count = ?
): mixed

該函數(shù)返回一個(gè)字符串或者數(shù)組。該字符串或數(shù)組是將 subject 中全部的 search 都被 replace 替換之后的結(jié)果。

如果沒(méi)有一些特殊的替換需求(比如正則表達(dá)式),你應(yīng)該使用該函數(shù)替換 ereg_replace()preg_replace()

參數(shù)

如果 searchreplace 為數(shù)組,那么 str_replace() 將對(duì) subject 做二者的映射替換。如果 replace 的值的個(gè)數(shù)少于 search 的個(gè)數(shù),多余的替換將使用空字符串來(lái)進(jìn)行。如果 search 是一個(gè)數(shù)組而 replace 是一個(gè)字符串,那么 search 中每個(gè)元素的替換將始終使用這個(gè)字符串。該轉(zhuǎn)換不會(huì)改變大小寫(xiě)。

如果 searchreplace 都是數(shù)組,它們的值將會(huì)被依次處理。

search

查找的目標(biāo)值,也就是 needle。一個(gè)數(shù)組可以指定多個(gè)目標(biāo)。

replace

search 的替換值。一個(gè)數(shù)組可以被用來(lái)指定多重替換。

subject

執(zhí)行替換的數(shù)組或者字符串。也就是 haystack

如果 subject 是一個(gè)數(shù)組,替換操作將遍歷整個(gè) subject,返回值也將是一個(gè)數(shù)組。

count

如果被指定,它的值將被設(shè)置為替換發(fā)生的次數(shù)。

返回值

該函數(shù)返回替換后的數(shù)組或者字符串。

范例

示例 #1 str_replace() 基本范例

<?php
// 賦值: <body text='black'>
$bodytag str_replace("%body%""black""<body text='%body%'>");

// 賦值: Hll Wrld f PHP
$vowels = array("a""e""i""o""u""A""E""I""O""U");
$onlyconsonants str_replace($vowels"""Hello World of PHP");

// 賦值: You should eat pizza, beer, and ice cream every day
$phrase  "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits""vegetables""fiber");
$yummy   = array("pizza""beer""ice cream");

$newphrase str_replace($healthy$yummy$phrase);

// 賦值: 2
$str str_replace("ll""""good golly miss molly!"$count);
echo 
$count;
?>

示例 #2 可能的 str_replace() 替換范例

<?php
// 替換順序
$str     "Line 1\nLine 2\rLine 3\r\nLine 4\n";
$order   = array("\r\n""\n""\r");
$replace '<br />';

// 首先替換 \r\n 字符,因此它們不會(huì)被兩次轉(zhuǎn)換
$newstr str_replace($order$replace$str);

// 輸出 F ,因?yàn)?nbsp;A 被 B 替換,B 又被 C 替換,以此類推...
// 由于從左到右依次替換,最終 E 被 F 替換
$search  = array('A''B''C''D''E');
$replace = array('B''C''D''E''F');
$subject 'A';
echo 
str_replace($search$replace$subject);

// 輸出: apearpearle pear
// 由于上面提到的原因
$letters = array('a''p');
$fruit   = array('apple''pear');
$text    'a p';
$output  str_replace($letters$fruit$text);
echo 
$output;
?>

注釋

注意: 此函數(shù)可安全用于二進(jìn)制對(duì)象。

警告

了解替換順序

由于 str_replace() 的替換時(shí)從左到右依次進(jìn)行的,進(jìn)行多重替換的時(shí)候可能會(huì)替換掉之前插入的值。參見(jiàn)該文檔的范例。

注意:

該函數(shù)區(qū)分大小寫(xiě)。使用 str_ireplace() 可以進(jìn)行不區(qū)分大小寫(xiě)的替換。

參見(jiàn)