2013-12-13 47 views
-1

當使用以下代碼我得到未定義的索引:標題和日期?

說明:未定義指數:標題中/home/.../php在線路34上
說明:未定義指數:日期中的線/home/.../php 37

我不知道爲什麼它這樣做!

<?php 
$rss = new DOMDocument(); 
$rss->load('http://www.example.com/feed/'); 
$feed = array(); 
foreach ($rss->getElementsByTagName('item') as $node) { 
    $item = array ( 

     'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue, 
     'link' => $node->getElementsByTagName('link')->item(0)->nodeValue, 

     ); 
    array_push($feed, $item); 
} 
$limit = 2; 
for($x=0;$x<$limit;$x++) { 
    $title = str_replace(' & ', ' &amp; ', $feed[$x]['title']); 
    $link = $feed[$x]['link']; 
    $description = $feed[$x]['desc']; 
    $date = date('l F d, Y', strtotime($feed[$x]['date'])); 
    echo '<p><strong><a href="'.$link.'" title="'.$title.'">'.$title.'</a></strong><br />'; 

    echo '<p>'.$description.'</p>'; 
} 

>

+0

$ feed [$ x]不包含標題,或者它的一個對象以及您作爲數組訪問的存取 – exussum

+0

用以下代碼替換'$ item'數組:http://codepad.org/fbU2Du5a –

回答

0

你將$item數組推入$feed數組。在$feed陣列中,對於titledate,沒有可用的這樣的密鑰值 。

$item = array ( 

    'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue, 
    'link' => $node->getElementsByTagName('link')->item(0)->nodeValue, 
    'title' => $node->getElementsByTagName('title')->item(0)->nodeValue, 
    'date' => $node->getElementsByTagName('date')->item(0)->nodeValue 
    ); 

我假設爲titledate你纔有價值,如果沒有設置適當的值。

0

因爲你array.So爲未定義以來,該指數不specified.Try這個它已經處理還沒有定義title$feeddate值:

$item = array ( 
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue, 
'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue, 
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue, 
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue, 
);