str_replace

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

str_replace子字符串替換

說明

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

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

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

參數(shù)

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

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

search

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

replace

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

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)制對象。

警告

了解替換順序

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

注意:

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

參見