On Wed, 2007-11-07 at 14:33 +0000, Mark Summers wrote:
> 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;
>
> ?>
Don't do this, it's terribly inefficient and superfluously complicated.
There's no escaping of the strings either before jamming them into the
pattern. What happens if you need to replace '||||||||'.
Cheers,
Rob.
--
...........................................................
SwarmBuy.com - http://www.swarmbuy.com
Leveraging the buying power of the masses!
...........................................................
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php