如何在php中用相应的多个字符替换多个字符?

时间:2014-01-23 13:57:23

标签: php regex replace preg-replace

我想用其他字符替换字符串中的多个字符,例如<a>b!到{{1 }},c$等。我希望在PHP中使用d来实现这一目标。我可以只在一行代码中执行此操作,还是应该打破字符串,创建数组然后替换它?

4 个答案:

答案 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