PHP快速轻松替换字符?

时间:2013-12-13 20:12:11

标签: php string preg-replace str-replace

我有一个生成哈希并过滤掉字符的函数:

$str  =  base64_encode(md5("mystring"));
$str  =  str_replace( "+", "_", 
             str_replace( "/", "-", 
             str_replace( "=", "x" $str 
         )));

在php中执行此操作的“正确”方法是什么?

即,有更清洁的方式吗?

// Let "tr()" be an imaginary function
$str  =  base64_encode(md5("mystring"));
$str  =  tr(  "+/=", "_-x",  $str  );

3 个答案:

答案 0 :(得分:4)

这里有几个选项,首先正确使用str_replace

$str = str_replace(array('+', '/', '='), array('_', '-', 'x'), $str);

还有永远被遗忘的strtr

$str = strtr($str, '+/=', '_-x');

答案 1 :(得分:1)

你可以在str_replace中使用像这样的数组

$replace = Array('+', '/', '=');
$with    = Array('_', '-', 'x');
$str = str_replace($replace, $with, $str);

希望有所帮助

答案 2 :(得分:1)

您还可以将strtr与数组一起使用。

strtr('replace :this value', array(
    ':this' => 'that'
));