This is a first attempt but the general idea is that the regular expression matching is done in one operation and then str_replace() is called only as many times as required instead of once for every line in your list. Also, str_replace() is faster than ereg_replace(). <?php $replace = array( "ñ" => "n", "á" => "a", "é" => "e", "í" => "i", "ó" => "o", "ú" => "u" ); $link = "ssrsrsrsóererrereísddósdssú"; if (preg_match_all("/(".join("|", array_keys($replace)).")/", $link, $matches)) { $matches = array_unique($matches); foreach ($matches[0] as $match) { $link = str_replace($match, $replace[$match], $link); } } echo $link; ?> Alberto García Gómez wrote: > I'm a mess in regular expressions and I make this code: > > $link = ereg_replace('ñ','n',$link); > $link = ereg_replace('á','a',$link); > $link = ereg_replace('é','e',$link); > $link = ereg_replace('í','i',$link); > $link = ereg_replace('ó','o',$link); > $link = ereg_replace('ú','u',$link); > > I ask if is a way to make those lines into a single one but working as well as this piece. I'm thinking in increase those lines so will be wonderful if I can optimize the code. > > > > Este correo ha sido enviado desde el Politécnico de Informática "Carlos Marx" de Matanzas. > "La gran batalla se librará en el campo de las ideas" > > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php