On Mon, Jan 19, 2004 at 07:15:53PM +0200, John Clegg wrote:
> Hi Joel,
> 
> Thanks for the reply.
> 
> I have tried using  "/" to delimit the string  and I get the following error
> 
> String
> 
> $url = "/http://www.foo.com/maxbid/Unsubscribe.php?EmailAddress=[MAIL]/";;
> 
> Gives the error:
> *Warning*: Unknown modifier '/' in* /test.php* on line *8*
> 
> I found out that I could use  ' to delimit from Example 5 in the php 
> manual page for preg_replace.

Whoops, you're totally right.  The single quote should work fine.  I
shouldn't underestimate PHP ;)

> Also I need to  replace only one occurance of the string at a time, so I 
> can't use str_replace :-( .
> 
> Any other suggestions??

The problem is that there are still special chars that need escaping.
Specifically, the question mark (?) and the square braces ([]).

Here is some modified code (apologies for poor word-wrapping):

<?php
$code = "blah http://www.foo.com/maxbid/Unsubscribe.php?EmailAddress=[MAIL] blah ";
$url = "'http://www.foo.com/maxbid/Unsubscribe.php\?EmailAddress=\[MAIL\]'";
echo "BEFORE : $code\n\n";
$replace  = "Foo";
$code = preg_replace($url,$replace,$code,1);
echo "AFTER: $code\n";
?>

When I run this, the output is:

BEFORE : blah http://www.foo.com/maxbid/Unsubscribe.php?EmailAddress=[MAIL] blah

AFTER: blah Foo blah

Next time, I'll test out my answers before I give 'em.

HTH!

-- 
[ joel boonstra | gospelcom.net ]

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to