2011-01-14 11 views
2

のために私は主にPHPを使用するWebアプリケーションを開発しようとしているが、私は彼らのURLから人々のツイートをつかむためのjQuery/Javascriptを使用しています:http://twitter.com/status/user_timeline/joebloggs.json?count=1&callback=cronジョブが、jQueryの/ JavaScriptの

の事は自分のアプリケーションのためにサインアップした人からの最新のつぶやきをつかむためにPHPのcronジョブを実行したいです。しかし、私はjavascriptでこれを行う方法を知りませんか?

これは可能ですか?

編集:私はcronジョブを使用することができますので、私はPHPでこれを

これはjavascriptのコードでできますか?

<?  
$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 

そしてcrontabのを経由してPHPスクリプトを実行します。

$(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; 
} 
+0

を私は同意し、jQueryのは本当に最高です、それはブラウザの問題のすべての種類を解決し、同様に、良いです。 – goat

+0

なぜ投票ダウン?ばかばかしい – benhowdle89

+0

おそらくあなたが仕事に間違ったツールを使用している(cronはサーバー側で、javascriptはクライアント側です)、誰かが何とかこれが悪い質問になったと感じました。それではなく、私は反対投票しました。 – coreyward

答えて

2

最善の解決策は、再実装してPHPでの機能です。

+0

最新のつぶやきを取得するためのコードと同様に、Javascriptになっています。 cronの仕事として(私はcronがPHP用であることを実現しますが、私はjavascriptコードのために同じ機能を実装する必要があります) – benhowdle89

+0

ありがとう!それは正しい方向に私を設定する – benhowdle89

4

javascriptのメソッドのsetIntervalを使用すると、メソッドやミリ秒数を渡すことができます。指定したメソッドは、指定したミリ秒ごとに実行されます。だから、あなたが最新のツイートごとに30秒をつかむしたい場合、あなたはこのような何かを呼び出します。

setInterval(updateTweets,30000); 

これは、メソッドのupdateTweets最新のつぶやきをアップロードするためにAJAXを使用することができ、30秒毎に、呼び出します。

のsetIntervalの詳細については、あなたがチェックアウトすることができます:http://www.elated.com/articles/javascript-timers-with-settimeout-and-setinterval/

+0

ハイダスティン、私はsetIntervalについて理解していますが、ブラウザが開いている場合(PHPのcronジョブのような)に関係なく実行するコードが必要です私はCronジョブでいくつかのjQueryを呼び出すことができますか? – benhowdle89

+0

ブラウザが開いていないときに、ブラウザ側のコードを実行したいのはなぜですか? – ceejayoz

+0

それから、簡単な答えはいいえ、残念です。 jQueryは、@ceejayozが述べたように、ブラウザ側のコードであり、ブラウザ側でのみ動作します。ブラウザなし、ブラウザ側のコードなし。 –