Cronjob但是对于jQuery / Javascript

I'm trying to develop a web application that mainly uses PHP but i'm using jQuery/Javascript to grab people's Tweets from their URL: http://twitter.com/status/user_timeline/joebloggs.json?count=1&callback=?

The thing is want to run a PHP cron job to grab latest tweets from people who have signed up for my application. But i dont know how to do this with javascript?

Is this possible?

EDIT:

This is the javascript code, can i do this in PHP so i can use a Cron Job?

    $(document).ready( function() {

        var url = "http://twitter.com/status/user_timeline/joebloggs.json?count=1&callback=?";
        $.getJSON(url,
        function(data){
            $.each(data, function(i, item) {
                $("#twitter-posts").append("<p>" + item.text.linkify() + " <span class='created_at'>" + relative_time(item.created_at) + " via " + item.source + "</span></p>");
            });
        });
    });

    String.prototype.linkify = function() {
        return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(m) {
    return m.link(m);
  });
 }; 
  function relative_time(time_value) {
      var values = time_value.split(" ");
      time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
      var parsed_date = Date.parse(time_value);
      var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
      var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
      delta = delta + (relative_to.getTimezoneOffset() * 60);

      var r = '';
      if (delta < 60) {
        r = 'a minute ago';
      } else if(delta < 120) {
        r = 'couple of minutes ago';
      } else if(delta < (45*60)) {
        r = (parseInt(delta / 60)).toString() + ' minutes ago';
      } else if(delta < (90*60)) {
        r = 'an hour ago';
      } else if(delta < (24*60*60)) {
        r = '' + (parseInt(delta / 3600)).toString() + ' hours ago';
      } else if(delta < (48*60*60)) {
        r = '1 day ago';
      } else {
        r = (parseInt(delta / 86400)).toString() + ' days ago';
      }

      return r;
}
function twitter_callback ()
{
    return true;
}
douyuan9512
douyuan9512 仅供参考我编辑了我的答案,为您提供PHP方面的实施,这不会非常艰难:)
接近 10 年之前 回复
duanji1610
duanji1610 是的@ceejayoz你肯定是对的-似乎我们的OP已经发现了一些代码可以使用但它恰好是错误的语言:-)我不知道PHP但是这真的不是那么难-获取一些JSON并解析它应该是常见的事情。
接近 10 年之前 回复
douqian5920
douqian5920 当然,有像Node.js这样的东西,但是这个jQuery代码假定存在DOM对象,如#twitter-posts。
接近 10 年之前 回复
douxun2018
douxun2018 换句话说,您希望JavaScript代码在您的服务器上运行。在JavaScript中实现它的吸引力究竟是什么?在服务器上设置,管理和维护会很麻烦,因为现在您需要担心两个独立的编程环境。学习PHP修改提供对JavaScript解释器的访问权限,我不会感到惊讶,但对于这样简单的事情,它似乎根本不值得。
接近 10 年之前 回复
douzhongjiu2263
douzhongjiu2263 我想在cron作业上运行代码,抓取推文,存储在数据库中...可以用PHP完成吗?
接近 10 年之前 回复
doufu7835
doufu7835 JavaScript可以在任何有JavaScript解释器的地方运行。它不必在浏览器中。现在,jQuery代码,嗯,它不必在浏览器中,但如果没有DOM,那么使用DOM操作工具包没有多大意义:-)
接近 10 年之前 回复
duandi4815
duandi4815 您希望(或期望)运行JavaScript/jQuery代码的位置在哪里?当然有PHP工具允许您从URL获取内容。
接近 10 年之前 回复
dongwusang0314
dongwusang0314 不,如果没有打开浏览器,则无法运行浏览器端代码。没有浏览器,#twitter-posts甚至不存在...
接近 10 年之前 回复
dou70260
dou70260 谢谢,事情是,我理解差异,但我要求它可以做到
接近 10 年之前 回复
dtv11049
dtv11049 可能是因为你正在使用错误的工具(cron是服务器端,javascript是客户端),有人觉得不知怎的,这使得这个问题变得很糟糕。不是,我反对投票。
接近 10 年之前 回复
duanqiu9104
duanqiu9104 为什么投票失败?荒谬
接近 10 年之前 回复
douxi5940
douxi5940 我同意,jQuery真的是最好的,它解决了各种浏览器问题并且也很好。
接近 10 年之前 回复

2个回答



最佳解决方案是在PHP中重新实现您的功能:</ p>

 &lt  ;?

$ url =“http://twitter.com/status/user_timeline/joebloggs.json?count=1&amp;callback=?";
$responseJsonString = file_get_contents($ url);
$ responseArray = json_decode($ responseJsonString,$ array = true);

//取消注释以查看响应数组中的内容:
// print_r($ responseArray);
//现在,您可以使用$ responseArray
来执行此操作 n </ code> </ pre>

然后通过crontab执行PHP脚本。</ p>
</ div>

展开原文

原文

The best solution is to re-implement your functionality in PHP:

<?    
$url = "http://twitter.com/status/user_timeline/joebloggs.json?count=1&callback=?";
$responseJsonString = file_get_contents($url);
$responseArray = json_decode($responseJsonString, $array=true);

// uncomment this to see what's in the response array:
// print_r($responseArray);
// Now, you can do as you like with $responseArray

And then execute the PHP script via crontab.

dq62957
dq62957 谢谢! 这让我朝着正确的方向前进
接近 10 年之前 回复
dpyoh6553
dpyoh6553 因为我在获取最新推文的代码是在Javascript中,所以我需要它作为cron作业运行(我意识到cron是用于PHP但我需要为javascript代码实现相同的功能)
接近 10 年之前 回复



javascript方法setInterval允许您传递方法和毫秒数。 您提供的方法将在您提供的每隔几毫秒内执行。 所以如果你想每30秒抓一条最新的推文,你会打这样的话:</ p>

  setInterval(updateTweets,30000); 
</ code> </ pre >

这将每30秒调用一次updateTweets方法,您可以使用ajax加载最新的推文。</ p>

有关setInterval的更多信息,您可以查看 out: http://www.elated.com/articles/ javascript-timers-with-settimeout-and-setinterval / </ p>
</ div>

展开原文

原文

The javascript method setInterval allows you to pass a method and a number of milliseconds. The method you provide will be executed every number of milliseconds you provided. So if you wanted to grab the latest tweets every 30 seconds, you would call something like this:

setInterval(updateTweets,30000);

This would call the method updateTweets every thirty seconds, where you could use ajax to load up the latest tweets.

For more information on setInterval, you can check out: http://www.elated.com/articles/javascript-timers-with-settimeout-and-setinterval/

duanliushua5026
duanliushua5026 当然可以。
接近 10 年之前 回复
douran7929
douran7929 我想说的是我需要用PHP完成工作,但上面的代码是jQuery,我不知道PHP是否可以实现相同的结果
接近 10 年之前 回复
drktvjp713333
drktvjp713333 不幸的是,简单的答案是否定的。 正如@ceejayoz所提到的,jQuery是浏览器端代码,意味着它只在浏览器中运行。 没有浏览器,没有浏览器端代码。
接近 10 年之前 回复
duanhuo0577
duanhuo0577 当浏览器未打开时,您为什么要运行浏览器端代码?
接近 10 年之前 回复
douli7841
douli7841 嗨Dustin,我理解setInterval但我需要运行代码,无论浏览器是否打开(如PHP cron作业)我可以用Cron作业调用一些jQuery吗?
接近 10 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐