我有一个生成哈希并过滤掉字符的函数:
$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 );
答案 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'
));