查找页面中的所有 hrefs 并替换为保持上一个链接的链接 - PHP

Find all hrefs in page and replace with link maintaining previous link - PHP(查找页面中的所有 hrefs 并替换为保持上一个链接的链接 - PHP)
本文介绍了查找页面中的所有 hrefs 并替换为保持上一个链接的链接 - PHP的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试查找网页上的所有 href 链接,并将该链接替换为我自己的代理链接.

I'm trying to find all href links on a webpage and replace the link with my own proxy link.

例如

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

必须

<a href="http://www.example.com/?loadpage=http://www.google.com">Google</a>

推荐答案

使用PHP的DomDocument解析页面

$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();

在这里查看:http://codepad.org/9enqx3Rv

如果您没有将 HTML 作为字符串,您可以使用 cUrl (docs) 来抓取 HTML,也可以使用 DomDocument

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

文档

  • 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
  • cURL - http://php.net/manual/en/book.curl.php
  • 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
  • cURL - http://php.net/manual/en/book.curl.php

这篇关于查找页面中的所有 hrefs 并替换为保持上一个链接的链接 - PHP的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Convert JSON integers and floats to strings(将JSON整数和浮点数转换为字符串)
in php how do I use preg replace to turn a url into a tinyurl(在php中,如何使用preg替换将URL转换为TinyURL)
all day appointment for ics calendar file wont work(ICS日历文件的全天约会不起作用)
trim function is giving unexpected values php(Trim函数提供了意外的值php)
Basic PDO connection to MySQL(到MySQL的基本PDO连接)
PHP number_format returns 1.00(Php number_Format返回1.00)