2011-01-14 11 views
0
repliziert werden

Dies ist der Code, um Tweets zu greifen, aber ich brauche das in PHP, kann jemand Einblick bieten?Kann diese jQuery/Javascript-Funktionalität mit 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

** Ja, es kann in PHP repliziert werden ** Was haben Sie versucht? Mach einfach was es macht. Das einzige "Problem" kann sein, wenn die Seiten Cookies benötigen, die in einem Webbrowser-Client, aber vielleicht nicht durch den PHP-Code gesetzt werden, um den Inhalt zu liefern. –

+0

mit? irgendwelche spezifischen Funktionen, die Sie mir auf – benhowdle89

+0

@ benhowdle89 zeigen können genau, welcher Teil "Probleme gibt"? Wie in JS werden letztlich zahlreiche Funktionen und Operatoren verwendet. Fragen Sie "Wie kann ich eine Web-Ressource herunterladen" in PHP? Oder gibt es noch etwas anderes? –

Antwort

2

Der komplizierteste Teil ist der Wunsch, twittern Sie so etwas tun kann.

$content = file_get_contents("http://twitter.com/status/user_timeline/joebloggs.json?count=1&callback=?"); 

$twitter_response = json_decode($content); 

foreach($twitter_response as $item){ 
     //format someway 
     $item->text; #get the text of each tweet 

} 
2

Sie können cURL verwenden, um auf die Datei zuzugreifen. Verwenden Sie dann die PHP-Funktion json_decode, um mit den Daten zu arbeiten.

PHP: cURL
PHP: json_decode

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://twitter.com/status/user_timeline/joebloggs.json?count=1&callback=?"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$result = curl_exec($ch); 
curl_close($ch); 

$json = json_decode($result); 
var_dump($json); 
+0

Dank Michael, würde dies Twitter Hashtags oder Hyperlinks erhalten? – benhowdle89

+0

Keine Ahnung, um ganz ehrlich zu sein. Dieser Code ist theoretisch; Ich habe es nicht getestet. Aber ich habe in der Vergangenheit ähnliche Anfragen von anderen Seiten gemacht. –

1

Ja, Sie können es tun. Für die Hauptteile können Sie cURL oder file_get_contents verwenden, um die Daten zu holen, json_decode, um sie zu analysieren.