On Wed, 2009-07-22 at 13:02 +0100, rszeus 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 > > > Well, you seem to have some problems with the syntax you're using on str_replace(). According to your script, you want to remove the following: 7a45gfdi6icpan1jtb1j99o925 - which you haven't even enclosed in quote marks 'temp/' ’_([0-9])’ - which are using weird back ticks, not quote marks and you are trying to replace those three things with “test” - again, not proper quote marks "" ”” - not proper quote marks Afaik, str_replace() doesn't allow for text replacement using regular expressions, for that you'd have to use something like preg_replace() Also, make sure your strings are correctly enclosed in quote marks, and that the quote marks you use are actual quote marks and not the accented 'pretty' ones that are offered up by word processors, etc. A regex which would do the job would look something like this: ^([^/]+)[^_]+\/(.+)$ That should create 2 matches, one for the initial directory and the other for the latter part of the filename. Thanks Ash www.ashleysheridan.co.uk -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php