2012-11-26 76 views
1

我有幾個頁面,我從中獲取HTML。 $ html是來自每個頁面的html對象。我現在從頁面獲取圖像,一些頁面有一個圖像,有些頁面沒有。如果頁面沒有圖像,我想在數組中放入一個值,如empty。所以我需要類似if($html->find('img')==null)但我找不到與simple_html_dom解決方案。任何想法或其他方式來做到這一點?PHP simple_html_dom找到

//using simple_html_dom 

public function GetImages($dataArray) { 
    $url = 'http://page/'; 

    foreach ($dataArray as $link) { 
     $html = file_get_html($url . $link); 
     if(is_object($html)){ 

      foreach ($html->find('img') as $image) { 

       $images[] = $image->src; 
      } 

     } 

    } 
    return $images; 
} 

回答

0

我不compleately明白你的問題在這裏然而,如果你拉一個頁面,您可以使用
if(isset($html->find("img")))檢查,如果該屬性設置。

// If page has any images you will add their src path to images array 
if(isset($html->find("img"))) 
{ 
    for($html->find('img') as $image) { 
     if(isset($image)) 
     { 
      $images[] = $image->src; 
     } else { 
      $images[] = 'Empty'; 
     } 
    } 
} 

這將是更好地使用if(isset($image->src))如果你可以重寫你的問題將能夠幫助更好。

+0

對不起,我會嘗試解釋一些。對於每個包含來自一個頁面的html的$ html,我想檢查是否有img。如果$ html包含一個img我想將路徑添加到數組,如果不是,我想要另一個值。問題是當我在$ html-> find上使用isset時,出現「致命錯誤:無法在寫入上下文中使用方法返回值」。 – ana

+0

嘗試if(isset($ html-> img)) –

0

simple_html_dom發展不再年前..用積極開發DOM文檔(http://php.net/manual/en/class.domdocument.php),不simple_html_dom ......反正

if(count($html->find('img'))==0){$noImages=true;}; 

(DOM文檔中,你會使用$ domd->的getElementsByTagName( 「IMG」 ),就像在JavaScript webdev)