2013-12-13 4 views
-1

При использовании кода ниже я получаюНеопределенный индекс: название и дата?

Примечание: Undefined индекс: название в /home/.../php на линии 34
Примечание: Undefined индекс: дата в /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

You push $item массив в $feed массив. В $feed массив нет такого значения ключа для title и date.

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

Я предполагаю, что для title и date вы имеете значение, если не установлено соответствующее значение.

0

Поскольку вы не определили title и date значение в $feed array.So это рассматривалось как определено, так как индекс не specified.Try это:

$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, 
); 
Смежные вопросы