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