2011-09-11 18 views
0
function getNews() 
{ 
    $bloggerDataStr = file_get_contents("http://www.blogger.com/feeds/3018390933290471377/posts/default/-/comp?alt=json"); 
    $bloggerDataArr = json_decode($bloggerDataStr); 

    $html .= '<ul>'; 

    foreach($bloggerDataArr->feed->entry as $entry) 
    { 
     $html .= '<li>'; 
     $html .= '<h1>'.$entry->title->$t.'</h1>'; 
     $html .= '<time>'.$entry->published->$t.'</time>'; 

     $html .= '<section>'.$entry->content->$t.'</section>'; 

     $html .= '</li>'; 
    } 

    $html .= '</ul>'; 

    return $html; 
} 

私は、「致命的なエラー:空のプロパティにアクセスできません」を取得して:PHPデコードJSONエラー

$entry->title->$t. 

私は私のコードが正しいと信じて、私が間違っているのか理解していません。助けて?ありがとう

答えて

3

$tはPHPの変数名です。試してください$entry->title->{'$t'}

+0

これは、同じエラー – Herbert

+1

私の悪いを生成します: 'T'}

ここで編集したコードです!私は$ tの周りの一重引用符を見逃しました。 :p +1私はばかです。 :) – Herbert

0

おそらくこれが最もエレガントな解決策は不可能であるあなたが

+0

プロパティは "$ t"なので、これは実際に役立つものではありません。 –

0

を探しているプロパティをチェックするためのvar_dumpで試してみてください、それは私の作品: の問題はの名前にドル記号があるので、 $ entry-> title - > $ t "を$ entry-> title - > {chr(36)に置き換えてみてください。

$bloggerDataStr = file_get_contents("http://www.blogger.com/feeds/3018390933290471377/posts/default/-/comp?alt=json"); 
$bloggerDataArr = json_decode($bloggerDataStr); 

$html .= '<ul>'; 

foreach($bloggerDataArr->feed->entry as $entry) 
{ 
    $html .= '<li>'; 
    $html .= '<h1>'.$entry->title->{chr(36) . 't'}.'</h1>'; 
    $html .= '<time>'.$entry->published->{chr(36) . 't'}.'</time>'; 

    $html .= '<section>'.$entry->content->{chr(36) . 't'}.'</section>'; 

    $html .= '</li>'; 
} 

$html .= '</ul>'; 

return $html; 
+0

'chr()'を使うことは、一重引用符を使って変数の置換を禁止する限り、完全には不要です。 –

+0

ええ、私のコードで二重引用符を使用するため、私はそれらを追加したのですが、単一引用符や二重引用符を使用すると同じものになると信じていました(キーボードの代わりに2つのキーを押す必要はありません)。私はすべての二重引用符を一重引用符に変更しました:-)コードを投稿する前にInfact – Cesco