Maybe this helps
<?php
$line = preg_replace_callback(
'/(á|é|í|ó|ú|ñ)/',
create_function(
// single quotes are essential here,
// or alternative escape all $ as \$
'$matches',
'switch($matches[0]){
case \'á\': return \'a\';
case \'é\': return \'e\';
case \'í\': return \'i\';
case \'ó\': return \'o\';
case \'ú\': return \'u\';
case \'ñ\': return \'n\';
}'
),
$line
);
echo $line;
?>
if you want to use this functionality several times:
<?php
function myReplace($chr)
{
switch($chr[0]){
case 'á': return 'a';
case 'é': return 'e';
case 'í': return 'i';
case 'ó': return 'o';
case 'ú': return 'u';
case 'ñ': return 'n';
}
}
$line = "Hola que tal con á con acento y eñe ";
$line = preg_replace_callback(
'/(á|é|í|ó|ú|ñ)/',
'myReplace',
$line
);
echo $line;
?>
hope this helps. Note that these are pcre (Perl Compatible RegEx).
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"
>
--
Ezequiel Gutesman
Researcher
Corelabs
Core Security Technologies
http://www.coresecurity.com/corelabs
PGP Figerprint: 01E4 0E4F 83F8 2D5D 8050 0449 7156 1DF6 C2B3 34AE
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php