Forum Moderators: coopster

Message Too Old, No Replies

Optimize PHP str replace

php, str replace

         

okfec

8:38 am on May 3, 2007 (gmt 0)

10+ Year Member



HI, I am not very good programer and I think there exists a more optimized version of my code.

My code replaces some characters in the string, like this:


$name = str_replace("č", "c", $name);
$name = str_replace("š", "s", $name);
$name = str_replace("ž", "z", $name);
$name = str_replace("Č", "c", $name);
$name = str_replace("Š", "s", $name);
$name = str_replace("Ž", "z", $name);
$name = str_replace("Đ", "d", $name);
$name = str_replace("đ", "d", $name);
$name = str_replace("Ć", "c", $name);
$name = str_replace("ć", "c", $name);

Help me find more optimized version, thank you!

dreamcatcher

8:52 am on May 3, 2007 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



str_replace [uk.php.net] supports arrays, so you can use them if you want to:

$find = array("č","š","ž","Č","Š","Ž","Đ","đ","Ć");
$replace = array("c","s","z","c","s","z","d","d","c");

$name = str_replace($find, $replace, $name);

dc

okfec

12:46 pm on May 3, 2007 (gmt 0)

10+ Year Member



THNX

whoisgregg

1:12 pm on May 3, 2007 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



And to make it easier to add/modify your array you can set the find => replace as key => value pairs:

$find_replace = array(
"č" => "c",
"š" => "s",
"ž" => "z",
"Č" => "c"
);
$find = array_keys($find_replace);
$replace = array_values($find_replace);
$name = str_replace($find, $replace, $name);