Nasıl mySQL içine geçerli twitter trend konular dökümü cURL / PHP kullanırım

1 Cevap php

Burada listelenen geçerli Twitter Eğilimleri konuları okur, her birkaç saatte bir cron işi çalıştırmak için çalışıyor:

http://search.twitter.com/trends.json

Ve sonra benim sunucuda bir mySQL tabloya ilk 10 eğilimleri dökümü

Bu nasıl? teşekkürler

1 Cevap

İşte size yardımcı olabilecek işaretçiler bir çift:


To use curl : you will need to initialize a connexion, configure it, and execute it.

Örneğin, böyle bir şey yapmak (very basic example) olabilir:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://search.twitter.com/trends.json");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$json = curl_exec($ch);

curl_close($ch);

// $json contains the data you want
var_dump($json);

Sen o çıkış tür alacak:

string '{"as_of":"Fri, 21 Aug 2009 20:59:54 +0000","trends":[{"name":"Follow Friday","url":"http:\/\/search.twitter.com\/search?q=%22Follow+Friday%22"},{"name":"#BrutalLegend","url":"http:\/\/search.twitter.com\/search?q=%23BrutalLegend"},{"name":"#shoutout","url":"http:\/\/search.twitter.com\/search?q=%23shoutout"},{"name":"#fact","url":"http:\/\/search.twitter.com\/search?q=%23fact"},{"name":"Inglourious","url":"http:\/\/search.twitter.com\/search?q=Inglourious"},{"name":"Which Horror Movie","url":"http:\/\/search.twitter.com\/search?q=%22Which+Horror+Movie%22"},{"name":"Cataclysm","url":"http:\/\/search.twitter.com\/search?q=Cataclysm"},{"name":"Inglourious Basterds","url":"http:\/\/search.twitter.com\/search?q=%22Inglourious+Basterds%22+OR+%22Inglorious+Basterds%22"},{"name":"District 9","url":"http:\/\/search.twitter.com\/search?q=%22District+9%22"},{"name":"Twitter Besides","url":"http:\/\/search.twitter.com\/search?q=%22Twitter+Besides%22"}]}' (length=955)

Tabii ki, diğer seçenekleri birkaç ayarlamak isteyebilirsiniz; Tam liste için, curl_setopt belgelerine bir göz atın.


Parsing the JSON string :

Eğer> = 5.2 PHP kullanıyorsunuz kaydıyla, json_decode json verilerini ayrıştırmak için kullanabilirsiniz:

$data = json_decode($json);

var_dump($data);

Daha sonra böyle bir şey elde edeceksiniz:

object(stdClass)[1]
  public 'as_of' => string 'Fri, 21 Aug 2009 21:01:48 +0000' (length=31)
  public 'trends' => 
    array
      0 => 
        object(stdClass)[2]
          public 'name' => string 'Follow Friday' (length=13)
          public 'url' => string 'http://search.twitter.com/search?q=%22Follow+Friday%22' (length=54)
      1 => 
        object(stdClass)[3]
          public 'name' => string '#BrutalLegend' (length=13)
          public 'url' => string 'http://search.twitter.com/search?q=%23BrutalLegend' (length=50)
      2 => 
        object(stdClass)[4]
          public 'name' => string '#shoutout' (length=9)
          public 'url' => string 'http://search.twitter.com/search?q=%23shoutout' (length=46)
      3 => 
        object(stdClass)[5]
          public 'name' => string '#fact' (length=5)
          public 'url' => string 'http://search.twitter.com/search?q=%23fact' (length=42)
      4 => 
        object(stdClass)[6]
          public 'name' => string 'Inglourious' (length=11)
          public 'url' => string 'http://search.twitter.com/search?q=Inglourious' (length=46)
      5 => 
        object(stdClass)[7]
          public 'name' => string 'Cataclysm' (length=9)
          public 'url' => string 'http://search.twitter.com/search?q=Cataclysm' (length=44)
      6 => 
        object(stdClass)[8]
          public 'name' => string 'Which Horror Movie' (length=18)
          public 'url' => string 'http://search.twitter.com/search?q=%22Which+Horror+Movie%22' (length=59)
      7 => 
        object(stdClass)[9]
          public 'name' => string 'Inglourious Basterds' (length=20)
          public 'url' => string 'http://search.twitter.com/search?q=%22Inglourious+Basterds%22+OR+%22Inglorious+Basterds%22' (length=90)
      8 => 
        object(stdClass)[10]
          public 'name' => string 'District 9' (length=10)
          public 'url' => string 'http://search.twitter.com/search?q=%22District+9%22' (length=51)
      9 => 
        object(stdClass)[11]
          public 'name' => string 'Hurricane Bill' (length=14)
          public 'url' => string 'http://search.twitter.com/search?q=%22Hurricane+Bill%22' (length=55)

Bu twitter elde edilen tüm verileri içerir.


Inserting the data into database :

Şimdi, 'eğilimleri' bu dizi üzerinde yineleme var, ve, her bir hat için, MySQL veritabanı içine yerleştirin.

Bunun için, kullanmak ya da yapabilirsiniz:

Using prepared statements might help, too (mysqli, pdo) ;-)
If you are not using prepared statements, anyway, you must thing about escaping your data, using either mysqli_real_escape_string or PDO::quote.

Burada, tabii ki zaten doğru yapısı ile, bir tablo olması gerekir; Ben de size bir MySQL tabloya veri eklemek için biliyorum varsayalım.


If you have more specific questions, don't hesitate to ask, with some examples of code you are using that doesn't work (and a description of what doesn't work / the error message you are getting, of course) !


Have fun !