2014-01-19 52 views
-1

我有TEST.HTM名稱的HTML文件,並與下面的代碼:提取圖片src值使用PHP

<div></div> 

<div> 
<div class="body"> 
<div> 
<a href="login.php"><img src="./lklk_files/81755_236.jpg"></a> 
</div> 

<div class="wrapper"></div> 

</div> 

<div class="photo-holder"></div> 
</div> 

我只想從與DIV class屬性提取IMG SRC值與「體」的屬性值 我使用下面的PHP代碼:

<?php 

$f = "test.htm"; 
$doc = new DOMDocument(); 
$doc->loadHTMLFile($f); 
$xpath = new DOMXPath($doc); 

$nodeList = $xpath->query("//div"); 
foreach($nodeList as $node) 
if($node->getAttribute('class') == "body"){ 
$s = $node->nodeValue; 
$doc2 = new DOMDocument(); 
$doc2->loadHTML($s); 
$xpath2 = new DOMXPath($doc2); 
$img = $xpath2->query("//img"); 
foreach($img as $g) 
echo $g->attributes->getNamedItem('src')->nodeValue; 
} 
?> 

但是,當運行它,說你的$ s是我的代碼空白string.Where是錯誤的?

回答

0

做這樣的...

<?php 
$html='<div></div> 

<div> 
<div class="body"> 
<div> 
<a href="login.php"><img src="./lklk_files/81755_236.jpg"></a> 
</div> 

<div class="wrapper"></div> 

</div> 

<div class="photo-holder"></div> 
</div>'; 
    $dom = new DOMDocument; 
    $dom->loadHTML($html); 
foreach ($dom->getElementsByTagName('div') as $tag) { 

    if($tag->getAttribute('class')=='body') 
    { 
     foreach($tag->getElementsByTagName('img') as $imgtag) 
     { 
      echo $imgtag->getAttribute('src'); 
      exit; 
     } 
    } 
} 

OUTPUT:

./lklk_files/81755_236.jpg 
0

你可以試試這個,$domxpath->evaluate("string(//img/@src)");

$htmlString= '<div></div> 

    <div> 
    <div class="body"> 
    <div> 
    <a href="login.php"><img src="./lklk_files/81755_236.jpg"></a> 
    </div> 

    <div class="wrapper"></div> 

    </div> 

    <div class="photo-holder"></div> 
    </div>'; 

    $dom = new DOMDocument(); 
    $dom->loadHTML($htmlString); 
    $domxpath = new DOMXPath($dom); 
    echo $src = $domxpath->evaluate("string(//img/@src)");