redolent
redolent

Reputation: 4269

PHP quick easy to replace characters?

I have a function that generates a hash and filters out characters:

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

What is the "right" way to do this in php?

i.e., is there a cleaner way?

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

Upvotes: 1

Views: 87

Answers (3)

M K
M K

Reputation: 9416

You can also use strtr with an array.

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

Upvotes: 1

César
César

Reputation: 392

You can use arrays in str_replace like this

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

Hope it helped

Upvotes: 1

Diego Agulló
Diego Agulló

Reputation: 9586

There's a couple options here, first using str_replace properly:

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

And there's also the always-forgotten strtr:

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

Upvotes: 4

Related Questions