【问题标题】:Pull tweets via php, update via JQuery/Ajax通过 php 拉推文,通过 JQuery/Ajax 更新
【发布时间】:2011-07-01 13:31:09
【问题描述】:

我目前有一个脚本,可以从 Twitter 中提取推文(关于搜索主题,例如“真棒”)并显示它们。该脚本显示最新的 20 条推文。

我想进一步开发我的脚本。我想检查页面加载后是否有任何新的推文被发布,如果是,那么显示它们,同时每页仍然只显示 20 条(所以它们都向下移动)。

这是我目前所拥有的:

<?php

function get_file($uri) {       
    return file_get_contents($uri);
};

$xml = get_file('http://search.twitter.com/search.atom?q=awesome%20-rt&lang=en&rpp=20');
$tweets = new simpleXMLElement($xml);
?>
<div id="entries">
    <?php
    foreach ($tweets->entry as $tweet) {    
        echo '<div class="entry">';
        echo '<img class="tweet-pic" src="'.$tweet->link[1]->attributes()->href.'" />';
        echo '<p class="tweet">'.$tweet->title.'</p>';
        echo '<p class="tweep"><a class="link" href="'.$tweet->link[0]->attributes()->href.'">'.$tweet->author->name.'</a></p>';
        echo '<div class="clear"></div>';
        echo '</div>';
        echo '<hr/>';
    }
    ?>  
</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js" language="javascript"></script>

<script>
$(document).ready(function(){
getlatest();
});
function getlatest() { 
$.ajax({
    type: "GET",
    url: "index.php",
    cache: false,
    success: function(html){
            $("div#entries").prepend(html);
            $(".entry").slideDown("1000");
        }
});

setTimeout("getlatest();",10000);
}
</script>

任何帮助将不胜感激。

【问题讨论】:

  • 你觉得get_file这个函数完全没用吗?
  • 我知道,但它的存在是因为在大学期间,它是如何绕过防火墙的一部分。我在大学期间将其保存在我的编辑中。

标签: php jquery ajax twitter tweets


【解决方案1】:

好吧,当您获得 XML 时,每条推文都有一个相关的时间戳。从这里开始,在您的 AJAX 调用中(您可以使用 setTimeout 每隔 X 次运行一次,您可以比较列表中的第一条推文和 XML 中的第一条推文。

如果日期较新,您应该:

  • 在您的推文之后查找下一条推文 第一。我的意思是,第一个从 XML 不必是唯一的新的 进入通话。
  • 获取所有新推文,从您刚刚找到的推文开始。
  • 用推文中的新 HTML 替换 HTML。

【讨论】:

  • 我不擅长 Javascript/JQuery 或 Ajax。但感谢您的建议。有什么代码示例可以帮助我吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多