2011-11-15 24 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

相关问题