我想用其他字符替换字符串中的多个字符,例如<
到a
,>
到b
,!
到{{1 }},c
到$
等。我希望在PHP中使用d
来实现这一目标。我可以只在一行代码中执行此操作,还是应该打破字符串,创建数组然后替换它?
答案 0 :(得分:9)
为什么要使用正则表达式来实现这一目标?只需使用str_replace,速度要快得多。
$replace = str_replace(array('<', '>', '!'), array('a', 'b', 'c'), $text);
答案 1 :(得分:5)
你可以使用简单的替换,在你的情况下,正则表达式将是一个矫枉过正。例如:
$result = strtr($data, [
'<' => 'a',
'>' => 'b',
'!' => 'c',
//e t.c.
]);
替代方案是str_replace()
,但我认为关联数组看起来更具可读性。
答案 2 :(得分:0)
使用专为此类字符翻译而设计的strtr
:
<?php
$string = '<<!!';
echo strtr($string, '<>!$', 'abcd');
// Output: aacc
答案 3 :(得分:-1)
这就是我要做的。
$string = '<>!$';
$string = str_replace('<', 'a', $string);
$string = str_replace('>', 'b', $string);
$string = str_replace('!', 'c', $string);
$string = str_replace('$', 'd', $string);
echo $string; // abcd