Welcome to WebmasterWorld Guest from 54.158.25.146

Forum Moderators: coopster & jatar k

Message Too Old, No Replies

PHP preg_replace

modifying urlsís

     
12:38 am on Feb 27, 2005 (gmt 0)

Junior Member

10+ Year Member

joined:Dec 18, 2003
posts:58
votes: 0


Never been able to master regular expressions but some how mange, but not with this one.

Need the regular expression for modifying hrefs(so not other urls in images etc)

Example change
<a href=http://www.site1.com> to <a href="www.site2.com?q=http://www.site1.com">

Need it to work with urls that use relative paths so change
<a href="/"> to <a href="www.site2.com?q=/">

Be nice if it worked with all possible urls
<a href="http://www.site1.com">
< a href=Ďhttp://www.site1.comí>
<a href=http://site1.com>
Etc

Iíve found a few similar examples and near working bits of code but i rarely use preg_replace and donít know enough to get them to work.

Any help with this will be greatly appreciated thanks.

1:00 am on Feb 27, 2005 (gmt 0)

Senior Member from US 

WebmasterWorld Senior Member ogletree is a WebmasterWorld Top Contributor of All Time 10+ Year Member Top Contributors Of The Month

joined:Apr 14, 2003
posts:4308
votes: 35


Maybe you can use parse_url to help with that.
1:26 am on Feb 27, 2005 (gmt 0)

Junior Member

10+ Year Member

joined:Dec 18, 2003
posts:58
votes: 0


Thanks ogletree

Iím being a bit thick, so i better stick with the preg_replace for now.

Not sure how i would use parse_url to achieve what i want.

I want to parse an entire html file and replace all the hrefís with another url, using the old url/relative path as a parameter.

4:47 am on Feb 27, 2005 (gmt 0)

New User

10+ Year Member

joined:Jan 26, 2005
posts:8
votes: 0


You can try the following. No effort is made to verify the original url string is a valid url.

$content = <<<EOQ

<a href="http://www.google.com"></a>
<a href=http://www.ala.com></a>

EOQ;

$content = preg_replace('#(<a[^>]+href="?)([^>" ]+)("?[^>]*>)#is','\\1http://www.site2.com?q=\\2\\3', $content);
print $content;

[edited by: eelixduppy at 12:37 pm (utc) on Mar. 20, 2008]
[edit reason] disabled smileys [/edit]

10:01 am on Feb 27, 2005 (gmt 0)

Junior Member

10+ Year Member

joined:Dec 18, 2003
posts:58
votes: 0


Thanks deizu that's perfect!
:)
11:59 pm on Feb 27, 2005 (gmt 0)

Administrator

WebmasterWorld Administrator coopster is a WebmasterWorld Top Contributor of All Time 10+ Year Member

joined:July 31, 2003
posts:12547
votes: 2


and welcome to WebmasterWorld, deizu.
 

Join The Conversation

Moderators and Top Contributors

Hot Threads This Week

Featured Threads

Free SEO Tools

Hire Expert Members