0

tumblr から一種のニュース フィードを作成するために tumblr が提供する xml 情報を読み取ろうとしていますが、非常に行き詰まっています。

<?php
    $request_url = 'http://candybrie.tumblr.com/api/read?type=post&start=0&num=5&type=text';
    $xml = simplexml_load_file($request_url);

    if (!$xml) 
    {
        exit('Failed to retrieve data.');
    }
    else 
    {
        foreach ($xml->posts[0] AS $post) 
        {
            $title = $post->{'regular-title'};
            $post = $post->{'regular-body'};
            $small_post = substr($post,0,320);

            echo .$title.;
            echo '<p>'.$small_post.'</p>';
        }
    }
?>

ノードを通過しようとするとすぐに壊れます。つまり、基本的に「tumblr->posts;....ect」が私のhtmlページに表示されます。

情報をローカルのxmlファイルとして保存しようとしました。文字列としてロードするなど、さまざまな方法で simplexml オブジェクトを作成しようとしました (おそらくばかげた考えです)。ウェブホスティングが PHP5 を実行していることを再確認しました。基本的に、なぜこれが機能しないのか、私は立ち往生しています。

編集: わかりました、最初の場所から変更してみました (元の方法に戻ります。tumblr から開始するのは、それを修正しようとする別の (実際にはばかげた) 方法でした。最初の -> の直後にまだ壊れているため、「投稿」が表示されます) [0] AS $post....ect" が画面に表示されます。

これは私が PHP で行った最初のことなので、事前に設定しておくべきだった明らかな何かがあるかもしれません。私は知りませんし、そのようなものを見つけることができませんでした。

4

3 に答える 3

0

これはうまくいくはずです:

<?php
$request_url = 'http://candybrie.tumblr.com/api/read?type=post&start=0&num=5&type=text';
$xml = simplexml_load_file($request_url);

if ( !$xml ){
    exit('Failed to retrieve data.');
}else{
    foreach ( $xml->posts[0] AS $post){
        $title = $post->{'regular-title'};
        $post  = $post->{'regular-body'};
        $small_post = substr($post,0,320);

        echo $title;
        echo '<p>'.$small_post.'</p>';
        echo '<hr>';
    }
}
于 2012-07-11T11:19:10.723 に答える
0
First thing in you code is that you used root element that should not be used.

    <?php
        $request_url = 'http://candybrie.tumblr.com/api/read?type=post&start=0&num=5&type=text';
        $xml = simplexml_load_file($request_url);

        if (!$xml) 
        {
            exit('Failed to retrieve data.');
        }
        else 
        {

           foreach ($xml->posts->post as $post) 
            {
                $title = $post->{'regular-title'};
                $post = $post->{'regular-body'};
                $small_post = substr($post,0,320);
                echo .$title.;
                echo '<p>'.$small_post.'</p>';
            }
        }
    ?>
于 2012-07-11T12:22:14.530 に答える