2011-09-22 27 views
0

我使用PHP來抓取XML源並將其顯示在我的網站上,源來自 This NewsReach BlogPHP錯誤,當XML項不存在

我使用一些簡單的PHP代碼來獲取詳細信息,如下所示:

$feed = new SimpleXMLElement('http://blog.newsreach.co.uk/atom.xml', null, true); 

    $i = 0; 

    foreach($feed->entry as $entry) 
    { 
     if ($i < 4) 
     { 
      $title = mysql_real_escape_string("{$entry->title}"); 
      $summary = mysql_real_escape_string("{$entry->content}"); 
      $summary = strip_tags($summary); 
      $summary = preg_replace('/\s+?(\S+)?$/', '', substr($summary, 0, 100)); 
      $url = mysql_real_escape_string("{$entry->link[4]['href']}"); 
      $media = $entry->children('http://search.yahoo.com/mrss/'); 
      $attrs = $media->thumbnail[0]->attributes(); 
      $img = $attrs['url']; 
     } 
    } 

,我有是,媒體縮略圖標籤沒有在每一個博客張貼這會導致錯誤出現存在的問題並停止XML Grabber的運行。

我有這樣很累的事情:

if ($media == 0) 
    { 
    } 
    else 
    { 
     $attrs = $media->thumbnail[0]->attributes(); 
      $img = $attrs['url']; 
    } 

if ($media['thumbnail'] == 0) 
    { 
    } 
    else 
    { 
     $attrs = $media->thumbnail[0]->attributes(); 
      $img = $attrs['url']; 
    } 

,我沒有運氣,我希望有人可以幫我檢查,如果XML項目存在,那麼過程取決於那。

感謝所有

+0

檢查元素是否存在與isset($ media-> thumbnail [0]) – Quasdunk

+0

這很好用謝謝 – lukehillonline

回答

1

如果它被設置,而不是空的,您可以檢查:

$img = ''; 
if (!empty($media->thumbnail[0])) { 
    $attrs = $media->thumbnail[0]->attributes(); 
    $img = $attrs['url']; 
} 

請記住,$媒體是一個對象,你可以不喜歡一個數組訪問($media['thumbnail']應該是$media->thumbnail) 。

+0

這就是我越來越困惑,我越來越混淆思維$媒體是一個數組而不是對象。 – lukehillonline