PHP String strtr()函数
strtr()是PHP的内置函数,用于替换字符串中的子字符串。它提供了更改字符串中特定单词的功能。strtr()函数可以翻译字符或替换子字符串。它是 区分大小写 的函数。PHP 4+ 版本支持此函数。
注意:strtr()函数会将字符从所有出现的位置替换掉。
PHP中还有一些类似strtolower()函数的其他函数:
语法
此函数有两种语法可用,一种用于字符串或字符替换,另一种用于数组键替换。这些语法如下。
对于字符串替换:
strtr (string str, stringfrom, string $to)
在这个函数中有三个参数。它将$from
中的每个字符替换为$to
,并返回$str
的副本。
对于数组键的替换:
strtr (string str, arrayreplace_pair)
在上面的函数中,包含两个参数。第二个参数$replace_pair
的形式是一个数组(’from’ => ‘to’,?)。它将返回一个字符串,其中替换了所有出现的数组键与相应值。
参数
$str: 这是一个字符串参数,用于被翻译,意味着它是将被翻译的主要字符串。
$from: 这是此函数的下一个参数,它将在字符串中被$to
替换。它是一个 必需的 参数,除非使用数组。
$to: 这是一个将用$from
变量替换的参数。该参数也是 必需的 ,就像$from
一样,除非使用数组。
注意:如果from和to具有不同长度,则较长字符串的其他字符将被忽略。返回的字符串$str
的长度将相同。
$replace_pair: 该参数以数组的形式而不是 from 和 to . 此数组包含两个字符串( $string1 和 $string2 ),即字符串1需要被更改并且将其更改为字符串2。
注意:如果string1和string2的长度都不同,则较长字符串将被格式化为较短字符串的长度。
返回值
- 它返回替换了
$from
字符为$to
字符的翻译后的字符串。 - 如果传递的参数是数组(
$replace_pair
),那么它返回通过使用相应的值将键字符串更改为的翻译后的字符串。如果该数组参数包含一个空字符串的键(? ?),则将返回FALSE。
示例
下面给出了一些示例。通过这些示例,我们可以了解strtr()函数的工作原理。
示例1
<?php
strng1 = "Hiy! Guud Mohneng";from = "yuhe";
to = "eori";
echo strtr(strng1, from,to);
?>
输出:
Hie! Good Morning
说明
y 被替换为 e
u 被替换为 o
h 被替换为 r
e 被替换为 i
所以, Hiy! Guud Mohneng 被替换为 Hie! Good Morning 。
示例 2
PHP 程序演示当 $from
和 $to
长度不同时的 strtr() 函数。
<?php
strng1 = "Hiy! Geud Mohning";from = "yeuh";
to = "eor";
echo strtr(strng1, from,to);
?>
输出结果:
Hie! Gord Mohning
解释
y被替换成e
e被替换成o
u被替换成r
h不被任何字符替换。
现在, Hiy! Geud Mohneng 被替换成 Hie! Gord Mohning 。
示例3
用数组键进行替换
<?php
strng = "Wilcone to javaCpoint.";arr1 = array("Wilcone" => "Welcome", "javaCpoint" => "javaTpoint");
echo strtr(strng,arr1);
?>
输出:
Welcome to javaTpoint.
示例4
PHP程序演示了strtr()函数,当数组的键为空字符串””时。
<?php
strng = "Wilcone to javaCpoint.";arr1 = array("Wilcone" => "Welcome", "" => "javaTpoint");
echo strtr(strng,arr1);
?>
输出:
No output
示例5
单个字母进行多次替换
<?php
string = "Wilcone to javaCpoint.";from = "inC";
to = "emT";
echo strtr(string, from,to);
?>
输出:
Welcome to javaTpoemt.
解释
在多个地方将 i 替换为 e 。
在多个地方将 n 替换为 m 。
由于此函数区分大小写,仅将 C 替换为 T 一次。
所以, Wilcone to javaCpoint 被替换为 Welcome to javaTpoemt 而不是 Welcome to JavaTpoint 。
示例6
区分大小写
<?php
strng = "Gqqd health Gqqd Life.";from = "q";
to = "o";
echo strtr(strng, from,to);
echo "</br>";
echo strtr($strng, "Q", "o";); //case-sensitive
?>
输出:
在这个示例中,对于第一个情况,所有出现的 q 都被替换为 o。另一方面,Q 没有被替换为 o,因为它是一个区分大小写的函数。
Good health Good Life.
Gqqd health Gqqd Life. //case-sensitive