2012-09-26 11 views
5

tengo esto:Como llegar src imagen por clase

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

cómo conseguir img src (http://www.teledynamics.com/tdresources/74c42cb2-dc7f-4548-b820-2946fbe160db.jpg)

trato mucho piensa que esto era última:

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

Respuesta

6

Esa no es la sintaxis XPath correcta. Trate

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

En primer lugar, buscar el nodo que representa la imagen cuya src que desea, entonces se obtiene el atributo src. Tenga en cuenta que la llamada -> query() devuelve un DOMNodeList, no un nodo.

+0

sigue sin funcionar –

+2

Intenta cambiar '$ nodes [0]' a '$ nodes-> item (0)'? – nickb

+0

@nickb: sí, se perdió esa parte. la respuesta está arreglada. Gracias. –

0

Con XPath se puede consultar un atributo directamente, string() dan su Node-valor:

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

Sin embargo estoy realmente lo siento decir que no tengo idea de cómo podría hacerse con preg_match en su caso;)

+0

necesito preg_match para obtener este elemento de la página porque hay muchos enlaces e imágenes, pero nvm está resuelto ahora, gracias de todos modos :) –

3

Trate como esto

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

Trate como esto

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


}?> 
Cuestiones relacionadas