如何按类获取图像src

时间:2012-09-26 14:01:55

标签: php regex domdocument

我有这个:

<a href="/Dealer-Catalog/ManufacturerID-3"><img class="brand-logo" src="http://www.teledynamics.com/tdresources/74c42cb2-dc7f-4548-b820-2946fbe160db.jpg" onerror="this.src='/Content/Css/Images/no_brand_logo_120_48.gif'" alt="ADTRAN"></a>

如何获得img src(http://www.teledynamics.com/tdresources/74c42cb2-dc7f-4548-b820-2946fbe160db.jpg)

我尝试了很多认为这是最后一个:

$doc = new DOMDocument();
libxml_use_internal_errors(true);
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$src = $xpath->evaluate("string(//class='brand-logo']/img/@src)");
echo "$src";

4 个答案:

答案 0 :(得分:6)

这不是正确的XPath语法。尝试

$nodes = $xpath->query("//img[@class='brand-logo']");
$src = $nodes->item(0)->getAttribute('src');

首先,您获取代表您想要的src图像的NODE,然后获取src属性。请注意, - &gt; query()调用返回DOMNodeList,而不是节点。

答案 1 :(得分:3)

试试这个

    <?php
    $html = '<a href="/Dealer-Catalog/ManufacturerID-3">
        <img class="brand-logo" src="http://www.teledynamics.com/tdresources/74c42cb2-dc7f-4548-b820-2946fbe160db.jpg"  alt="ADTRAN" />
        </a>';

    $xml = simplexml_load_string($html);
    echo $xml->img['src'];
    ?>

答案 2 :(得分:1)

试试这个

<?php 
$doc=new DOMDocument();
$doc->loadHTML('<a href="/Dealer-Catalog/ManufacturerID-3">
        <img class="brand-logo" src="http://www.teledynamics.com/tdresources/74c42cb2-dc7f-4548-b820-2946fbe160db.jpg"  alt="ADTRAN" />
        </a>');
$xml=simplexml_import_dom($doc); // just to make xpath more simple
$images=$xml->xpath('//img');
foreach ($images as $img) {
    echo $img['src'];


}?>

答案 3 :(得分:0)

使用xpath,您可以直接查询属性,string()给它的节点值:

$src = $xpath->evaluate("string(//img[@class='brand-logo']/@src)");

但是,非常抱歉说我不知道​​如何在你的情况下用preg_match完成;)