Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php从tumblr帖子中获取标签和日期?_Php - Fatal编程技术网

如何使用php从tumblr帖子中获取标签和日期?

如何使用php从tumblr帖子中获取标签和日期?,php,Php,我对PHP相当陌生,我设法在我的网站上获得了tumblr帖子。但只有标题和正文 1)为什么我抓不到日期? 2.)如何检查所有标签并将其导出 这是我的密码: <?php ini_set('display_errors', true); error_reporting(-1); $request_url = 'http://cedricfjacob.tumblr.com/api/read?type=post&start=0&num=10'; $xml = simplexml_

我对PHP相当陌生,我设法在我的网站上获得了tumblr帖子。但只有标题和正文

1)为什么我抓不到日期? 2.)如何检查所有标签并将其导出

这是我的密码:

<?php
ini_set('display_errors', true);
error_reporting(-1);

$request_url = 'http://cedricfjacob.tumblr.com/api/read?type=post&start=0&num=10';
$xml = simplexml_load_file($request_url);
$posts = $xml->xpath("/tumblr/posts/post"); 
foreach($posts as $post) {
    $title = $post->{'regular-title'};
    $post = $post->{'regular-body'};
    $tag = $post->{'tag'};
    $date = $post['date'];

    echo '<div class="title">'.$title.'</div>';
    echo '<div class="date">'.$date.'</div>';
    echo '<div class="tags">'.$tag.'</div>';
    echo '<div class="post">'.$post.'</div>';
}?>
xpath(“/tumblr/posts/post”);
foreach($posts作为$post){
$title=$post->{'regular-title'};
$post=$post->{'regular-body'};
$tag=$post->{'tag'};
$date=$post['date'];
回显“.$title.”;
回显“.$date.”;
回显“.$tag.”;
回显“.$post.”;
}?>
要查看XML,请访问:


谢谢你们

发生这种情况有两个原因:

  • 使用
    $post=$post->{'regular-body'}
    ovewite
    $post
    值。这不再是你所期望的

  • 第二个属性
    $post['date']
    是一个
    simplexmlement
    对象。要获取它的字符串值-例如,使用
    strval
    (字符串)
    类型转换

  • 最后:

    foreach($posts as $post) {
        $title = $post->{'regular-title'};
        $post_body = $post->{'regular-body'};    // change here
        $tag = $post->{'tag'};
        $date = strval($post['date']);           // change here
    
        echo '<div class="title">'.$title.'</div>';
        echo '<div class="date">'.$date.'</div>';
        echo '<div class="tags">'.$tag.'</div>';
        echo '<div class="post">'.$post_body.'</div>';  // change here
    }
    
    foreach($posts as$post){
    $title=$post->{'regular-title'};
    $post_body=$post->{'regular-body'};//在此处更改
    $tag=$post->{'tag'};
    $date=strval($post['date']);//在此处更改
    回显“.$title.”;
    回显“.$date.”;
    回显“.$tag.”;
    回显“.$post_body.”;//在此处更改
    }
    
    请添加api请求的输出。“var_dump($xml)”;谢谢@OfirBaruch,我将在下一个问题中牢记这一点。天哪,我现在很尴尬!我看了好几个小时,并没有发现我在重复使用$post。谢谢