修复网站HTML代码上的链接地址

时间:2010-01-28 06:52:13

标签: php regex hyperlink

我最近一直在研究一种工具。它从网站上获取所有链接地址。

我的问题是html代码中的链接有时会有所不同:

我需要使所有链接相同:

/index.php                       -> http://www.website.com/index.php
index.php                        -> http://www.website.com/index.php
http://www.website.com/index.php -> http://www.website.com/index.php

感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

欢迎使用GoogleOverflow.com。

以下是使用PHP和正则表达式解析HTML链接的完整教程:http://www.the-art-of-web.com/php/parse-links/

答案 1 :(得分:1)

Here's a function,它将返回给定基本(当前)URL和相对URL的绝对URL。

答案 2 :(得分:1)

您需要检查是否存在base标记。如果找到它,则指定基本URL(否则,基本URL与浏览器指向的路径相同,直到最后一个/)。

答案 3 :(得分:1)

使用preg_replace修复相对网址


<强>需要:
$domain =主题网站域
$path =您要查找的相关链接的文档或字符串。

<强>返回:
$url =将其中的链接转换为具有给定域的正确URL的doument或字符串。

<强>代码:

$url = preg_replace('<a\shref="([\/\?\w\.=\&]+)"([\s]rel="(\w+)")*>/', '<a href="http://{$site_domain}$1" rel="$3">' $path)  
祝你好运,让我知道它是怎么回事。