strtr() 是 PHP 中的一个内置函数,我们主要用它来将字符串中的特定子串替换为给定的字符。此外,它还提供了将特定单词更替为另一个单词的选项。需要注意的是,该函数区分大小写。
语法:
strtr($string, $string1, $string2)
或者,
strtr($string, $arr)
参数: 如上述语法所示,该函数接受三个参数,具体描述如下:
- $string: 它指定需要进行替换操作的目标字符串。这是一个必填参数。
- $string1: 它指定了需要在 $string 中查找并替换的字符字符串。如果不使用数组参数,这是必填项。
- $string2: 它指定了将 $string1 中的字符替换成的新字符字符串。如果不使用数组参数,这是必填项。
- $arr: 我们可以传递 ($string1 和 $string2) 组合,或者直接传递一个 $array 作为参数。当我们想要更改特定的子字符串时,通常会传递数组。该 $array 的键名包含待替换的字符串,键值包含替换后的字符串。
注意: 当 $string1 和 $string2 长度不同时,较长的字符串将被格式化为与较短字符串相同的长度。
返回值: 该函数的返回值取决于以下两种情况:
- 当传递 $string1 和 $string2 作为参数时,它通过将 $string1 的字符更改为 $string2 的字符来返回转换后的字符串。
- 如果传递 $array 作为参数,它通过将键名对应的字符串更改为键值对应的字符串来返回转换后的字符串。如果数组中存在任何键为空字符串 "" 的情况,则返回 false。
示例:
输入 : $string = "gieuz foh geeks",
$string1 = "iuzh" , $string2="eksr"
输出 : geeks for geeks
**解释** : i 被替换为 e
u 被替换为 k
z 被替换为 s
h 被替换为 r
输入 : $string = "gieuz foh geeks",
$string1 = "iuzh" , $string2 = "eks"
输出 : geeks foh geeks
**解释**: "iuzh" 被缩减为 "iuz",然后
执行了替换操作。
输入: $string = "giiks in giiks",
$arr = array("giiks" => "geeks", "in" => "for")
输出: geeks for geeks
**解释**: "giiks" 被替换为 "geeks",
"in" 被替换为 "for"
下面的程序演示了 PHP 中的 strtr() 函数:
程序 1: 演示当传递长度相同的 string1 和 string2 时 strtr() 函数的用法。
php
CODEBLOCK_f4870ab1
输出:
geeks for geeks
程序 2: 演示当传递长度不同的 string1 和 string2 时 strtr() 函数的用法。
php
CODEBLOCK_6b1d3b61
输出:
geeks foh geeks
程序 3: 演示 strtr() 函数替换字符串中所有出现字符的用法。
php
CODEBLOCK_f7955b74
输出:
geeks for geeks
程序 4: 演示当传递数组作为参数时 strtr() 函数的用法。
php
CODEBLOCK_359d77cb
输出:
geeks for geeks
程序 5: 演示当传递的数组中存在一个键为空字符串 "" 时的情况。
php
CODEBLOCK_c7d56b5a
输出:
No Output