2012-09-26 12 views
5

mam to:Jak uzyskać obraz src przez klasy

<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> 

jak dostać img src (http://www.teledynamics.com/tdresources/74c42cb2-dc7f-4548-b820-2946fbe160db.jpg)

staram dużo myśli, że to był ostatni:

$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"; 

Odpowiedz

6

to nie jest właściwa składnia XPath. Spróbuj

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

najpierw pobieramy węzła, który reprezentuje obraz, którego src chcesz, a następnie pojawi się atrybut src. Zauważ, że wywołanie -> query() zwraca DOMNodeList, a nie węzeł.

+0

nadal nie działa –

+2

Spróbuj zmienić '$ nodes [0] 'na' $ nodes-> item (0) '? – nickb

+0

@nickb: yeah, tęskniłem za tą częścią. odpowiedź jest naprawiona. dzięki. –

0

Z XPath można wyszukać atrybut bezpośrednio string() dać to węzeł wartości:

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

Jednak jestem naprawdę przykro powiedzieć, że nie mam pojęcia, jak to można zrobić z preg_match w twoja sprawa;)

+0

Potrzebuję preg_match, aby uzyskać ten element ze strony, ponieważ istnieje wiele linków i obrazów, ale nvm jest rozwiązany teraz, dzięki i tak :) –

3

Spróbuj jak to

<?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']; 
    ?> 
1

Spróbuj jak to

<?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']; 


}?>