2010-01-28 55 views
1

最近我一直在使用一種工具。它抓取網站上的所有鏈接地址。修復網站上的鏈接地址HTML代碼

我的問題是,在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 

感謝您的幫助。

回答

1

使用的preg_replace解決相對URL


要求:
$domain =主題網站域名
$path =你在尋找相對鏈接的文檔或字符串

退貨:
$url =該鏈接中的鏈接或字符串轉換爲具有給定域的正確url。

代碼:

$url = preg_replace('<a\shref="([\/\?\w\.=\&]+)"([\s]rel="(\w+)")*>/', '<a href="http://{$site_domain}$1" rel="$3">' $path) 

好運氣,讓我知道如何去。

1

歡迎使用GoogleOverflow.com。

下面是解析使用PHP和正則表達式中的HTML鏈接的完整的教程:http://www.the-art-of-web.com/php/parse-links/

+0

將此與Max S的功能相結合,即可設置。 – Jay 2010-01-28 06:59:25

+0

GoogleOverflow.com? – 2010-01-28 07:39:32

+0

在Google中輸入3個標籤,然後查看0.26秒內未回答問題。這種情況的發生頻率令人擔憂。 http://meta.stackexchange.com/questions/8724/how-to-deal-with-google-questions – Jay 2010-01-28 07:44:06

1

Here's a function將返回給定基(電流)URL和一個相對的絕對URL。

+0

謝謝,這確實有幫助。 – Semas 2010-01-28 07:14:15

1

您需要檢查是否存在base標記。如果找到它,它將指定基本URL(否則,基本URL與瀏覽器指向的路徑相同,直到最後一個)。