使用PHP从锚链接中提取图像href值

时间:2012-12-05 01:11:11

标签: php html-parsing

我希望使用PHP从锚链接中提取图像href值。见下图:

开始:

<a href="http://someimagelink.com/image34.jpg">image34.jpg</a>

目标:

http://someimagelink.com/image34.jpg

更具体地说,如何删除<a href="">image34.jpg</a>,以便它适用于任何给定的图像?

4 个答案:

答案 0 :(得分:2)

您应该查看PHP的DOM解析器:http://php.net/manual/en/domdocument.loadhtml.php

答案 1 :(得分:2)

你也可以像这样使用Simple HTML DOM Parser

$html = file_get_html('http://www.google.com/');

// Find all images 
foreach($html->find('img') as $element) 
    echo $element->src . '<br>';

答案 2 :(得分:0)

做这样的事情怎么样?我不确定这是不是一个好的解决方案......想法?

$html = "<a href='http://www.imagelink.com/images33.jpg'>images33.jpg</a>";
preg_match_all('/href=[\'"]?([^\s\>\'"]*)[\'"\>]/', $html, $matches);
$hrefs = ($matches[1] ? $matches[1] : false);
$url = implode('',$hrefs);
echo "<a href='$url'><img src='$url' width='100'></a>" ;

答案 3 :(得分:0)

您可以使用PHP DOMDocument来获取所需内容。代码看起来像这样:

$dom_doc = DOMDocument::loadHTML($html_string);
$a_tag_node_list = $dom_doc->getElementsByTagName('a');
foreach($a_tag_node_list as $a_tag_node) {
    echo $a_tag_node->attributes->getNamedItem("href")->nodeValue;
}