>> I believe the OP wanted to leave already-absolute paths alone
>> (i.e., only convert relative paths). The regex does not take into
>> account fully-qualified URLs (i.e.,
>> http://www.google.com/search?q=php) and it does not determine if a
>> given path is relative or absolute. He was wanting to take the href
>> attribute of an anchor tag and, **IF** it was a relative path, turn
>> it into an absolute path (meaning to append the relative path to
>> the absolute path of the current script).
>
> That's exactly what this regex does :-) The (?!$prefix) negative
> lookahead assertion fails the match if it's already an absolute URL.
>
>> That was my understanding. Perhaps you saw it differently, but I
>> don't believe your pattern is enough to accomplish what the OP was
>> asking for--hence "a lot" of code was in my reply. ;)
>>
>> Believe me, I'm the first guy to hop on the "do it with a regex!"
>> bandwagon... but there are just some circumstances where regex
>> can't do what you need to do (such as more-than-superficial
>> contextual logic).
>>
>> HTH,
>>
>>
>> // Todd
>
Ahh, but you uncovered a problem for me if the href contains an
absolute URL that doesn't contain the prefix. Here's the fix:
$html =
preg_replace("|(href=['\"]?)(?!http(?:s)?://)[/]?([^>'\"\s]+)(\s)?|",
"$1http://www.example.com/2$3", $html);
--
Thanks!
-Shawn
http://www.spidean.com
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php