PHP中的Perl正则表达式tr函数


Perl regex tr function in PHP

我主要使用perl,它有一个有用的功能可以将字符列表更改为其他字符,即tr:

 $str =~ tr/[ÁÉÍÓÖŐÚÜŰ]/[AEIOOOUUU]/;

现在我需要在PHP中实现这一点,但我发现只有str_replace功能一个接一个地改变,如下所示:

$str = str_replace('Á', 'A', $str);
$str = str_replace('É', 'E', $str);
// etc...

PHP中有类似Perl中的单行解决方案吗?

在PHP中,使用strtr函数来翻译字符:

$str = 'ÁÉÍ foo ÖŐÚÜŰ bar';
echo strtr($str, array('Á' => 'A', 'É' => 'E', 'Í' => 'I', 'Ó' => 'O', 
                       'Ö' => 'O', 'Ő' => 'O', 'Ú' => 'U', 'Ü' => 'U', 'Ű' => 'U'));
//=> AEI foo OOUUU bar