I'm trying to find all href links on a webpage and replace the link with my own proxy link.
For example
<a href="http://www.google.com">Google</a>
Needs to be
<a href="http://www.example.com/?loadpage=http://www.google.com">Google</a>
Use PHP's DomDocument
to parse the page
$doc = new DOMDocument();
// load the string into the DOM (this is your page's HTML), see below for more info
$doc->loadHTML('<a href="http://www.google.com">Google</a>');
//Loop through each <a> tag in the dom and change the href property
foreach($doc->getElementsByTagName('a') as $anchor) {
$link = $anchor->getAttribute('href');
$link = 'http://www.example.com/?loadpage='.urlencode($link);
$anchor->setAttribute('href', $link);
}
echo $doc->saveHTML();
Check it out here: http://codepad.org/9enqx3Rv
If you don't have the HTML as a string, you may use cUrl (docs) to grab the HTML, or you can use the loadHTMLFile
method of DomDocument
Documentation
DomDocument
- http://php.net/manual/en/class.domdocument.php
DomElement
- http://www.php.net/manual/en/class.domelement.php
DomElement::getAttribute
- http://www.php.net/manual/en/domelement.getattribute.php
DOMElement::setAttribute
- http://www.php.net/manual/en/domelement.setattribute.php
urlencode
- http://php.net/manual/en/function.urlencode.php
DomDocument::loadHTMLFile
- http://www.php.net/manual/en/domdocument.loadhtmlfile.php
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With