2011-11-15 23 views
0

我想解析外部網頁,並使用PHP提取所有網址並鏈接文本。解析外部網頁並提取所有網址並鏈接內容中的文本

例如,

$content="<a href="http://google.com" target="_blank"> google</a> is very good search engine <a href="http://gmail.com" target="_blank">Gmail </a> is provided by google. 

輸出:

http//google.com  google 
http//gmail.com  Gmail 

的建議是非常感謝!

回答

0

您可以使用此正則表達式href="([a-zA-Z0-9://. ]+)"

用法示例

$pattern = 'href="([a-zA-Z0-9://. ]+)"'; 
$content = file_get_contents(FILE NAME HERE); 
preg_match($pattern, $content, $matches); 

print_r($matches); 

這將列出所有鏈接。然後你可以解析它們。

2

如果你想提取使用正則表達式的URL和文本,然後下面應該工作:

<\s*a\s*href\s*=\"(?<url>.*)\">(?<text>.*)</a> 

然而,隨着RegEx解析HTML是不是一個好主意,你可以使用DOM類代替。

編輯

$content = "< a href="http://google.com" target="_blank"> google</a> is very good search engine < a href="http://gmail.com" target="_blank">Gmail </a> is provided by google ."; 

$html = new DOMDocument(); 
$html->loadHTML($content); 

$anchors = $html->getElementsByTagName('a'); 
foreach ($anchors as $anchor) { 
     echo $anchor->getAttribute('href') . "\t" . $anchor->nodeValue; 
} 
+0

DOM使用php.I沒有與DOM – user1032289

+0

任何想法@ user1032289編輯答案如何編寫程序。 – fardjad

+0

謝謝,這對我很有用 – user1032289

相關問題