Re: Regular Expressions

From: Date: Tue, 06 Nov 2007 17:02:18 +0000
Subject: Re: Regular Expressions
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-264126@lists.php.net to get a copy of this message
you could do it without any function <?php $line = "Hola que tal con &aacute; con acento y e&ntilde;e \n"; echo preg_replace('/&([aeioun])(acute|tilde);/i','\1',$line); ?> On Nov 6, 2007 2:44 PM, Ezequiel Gutesman <egutesman@coresecurity.com> wrote: > Maybe this helps > > <?php > > > $line = preg_replace_callback( > > '/(&aacute;|&eacute;|&iacute;|&oacute;|&uacute;|&ntilde;)/', > create_function( > // single quotes are essential here, > // or alternative escape all $ as \$ > '$matches', > 'switch($matches[0]){ > case \'&aacute;\': return \'a\'; > case \'&eacute;\': return \'e\'; > case \'&iacute;\': return \'i\'; > case \'&oacute;\': return \'o\'; > case \'&uacute;\': return \'u\'; > case \'&ntilde;\': return \'n\'; > }' > ), > $line > ); > > echo $line; > ?> > > if you want to use this functionality several times: > > <?php > > function myReplace($chr) > { > switch($chr[0]){ > case '&aacute;': return 'a'; > case '&eacute;': return 'e'; > case '&iacute;': return 'i'; > case '&oacute;': return 'o'; > case '&uacute;': return 'u'; > case '&ntilde;': return 'n'; > } > } > > > $line = "Hola que tal con &aacute; con acento y e&ntilde;e "; > > $line = preg_replace_callback( > > '/(&aacute;|&eacute;|&iacute;|&oacute;|&uacute;|&ntilde;)/', > '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('&ntilde;','n',$link); > > $link = ereg_replace('&aacute;','a',$link); > > $link = ereg_replace('&eacute;','e',$link); > > $link = ereg_replace('&iacute;','i',$link); > > $link = ereg_replace('&oacute;','o',$link); > > $link = ereg_replace('&uacute;','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 > >

« previous php.general (#264126) next »