RE: [PHP] Replace in a string with regex
| From: | rszeus | Date: | Wed, 22 Jul 2009 13:07:57 +0000 |
| Subject: | RE: [PHP] Replace in a string with regex | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-295672@lists.php.net to get a copy of this message | ||
Hi. It Works to remove the _1 but it doesn't replace '7a45gfdi6icpan1jtb1j99o925' for
'test'
Thank you
-----Mensagem original-----
De: Eddie Drapkin [mailto:oorza2k5@gmail.com]
Enviada: quarta-feira, 22 de Julho de 2009 13:11
Para: rszeus
Cc: php-general@lists.php.net
Assunto: Re: [PHP] Replace in a string with regex
On Wed, Jul 22, 2009 at 8:02 AM, rszeus<rszeus@gmail.com> wrote:
> Hello,
>
> I’m tryng to make some replacements on a string.
>
> Everything goês fine until the regular expression.
>
>
>
> $file = "screens/temp/7a45gfdi6icpan1jtb1j99o925_1_main.jpg";
>
> echo $a = str_replace(array(7a45gfdi6icpan1jtb1j99o925,
> 'temp/',’_([0-9])’), array(“test”,"",””), $file)
>
>
>
> The idea is to remove /temp and the last _1 from the file name..but i’m only
> getting this:
>
> screens/test_1_main.jpg
>
>
>
> I want it to be: screens/test_main.jpg
>
>
>
> Thank you
>
>
>
>
If you're trying to do a regular expression based search and replace,
you probably ought to use preg_replace instead of str_replace, as
str_replace doesn't parse regular expressions.
Try this one out, I think I got what you wanted to do:
<?php
$file = "screens/temp/7a45gfdi6icpan1jtb1j99o925_1_main.jpg";
echo preg_replace('#(screens/)temp/(.+?)_1(_main\.jpg)#', '$1$2$3', $file);