Как я могу использовать cURL / PHP, чтобы записать текущие темы Twitter в MySQL - PullRequest
0 голосов
/ 22 августа 2009

Попытка запуска задания cron каждые несколько часов, которое читает текущие темы Twitter Trending, перечисленные здесь:

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

А затем выгрузите 10 лучших трендов в таблицу mySQL на моем сервере

как это сделать? спасибо

Ответы [ 2 ]

2 голосов
/ 22 августа 2009

Вот пара указателей, которые могут вам помочь:


Для использования curl : вам необходимо инициализировать соединение, настроить it и выполнить it.

Например, что-то подобное может сделать (очень простой пример) :

$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);

Вы получите такой вывод:

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)

Конечно, вы можете установить несколько других параметров; для полного списка, посмотрите на документацию curl_setopt.


Анализ строки JSON:

Если вы используете PHP> = 5.2, вы можете использовать json_decode для анализа данных json:

$data = json_decode($json);

var_dump($data);

Затем вы получите что-то вроде этого:

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)

Содержит все данные, полученные из твиттера.


Вставка данных в базу данных:

Теперь вам нужно перебрать этот массив «трендов» и для каждой строки вставить его в базу данных MySQL.

Для этого вы можете использовать:

Использование подготовленных операторов также может помочь ( mysqli , pdo ) ;-)
Если вы не используете подготовленные заявления, в любом случае вы должны решить, что вам нужно экранировать ваши данные, используя mysqli_real_escape_string или PDO::quote.

Здесь, конечно, вам уже нужно иметь таблицу с правильной структурой; Я также предполагаю, что вы знаете, как вставить данные в таблицу MySQL.


Если у вас есть более конкретные вопросы, не стесняйтесь спрашивать, с некоторыми примерами кода, который вы используете, который не работает (и описание того, что не работает / сообщение об ошибке, которое вы получаете, конечно, ) !


Веселись!

0 голосов
/ 22 августа 2009

<pre> <?php</p> <pre><code>$curl = curl_init(); curl_setopt_array($curl, Array( /* CURLOPT_HEADER => true, CURLOPT_POSTFIELDS => $postdata, CURLOPT_POST => $method == 'POST', CURLOPT_HTTPHEADER => $headers, CURLOPT_USERAGENT => "Mozil.....", */ CURLOPT_URL => "http://search.twitter.com/trends.json", CURLOPT_TIMEOUT => 300, CURLOPT_CONNECTTIMEOUT => 60, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_ENCODING => 'gzip,deflate' )); $json = curl_exec($curl); $json = json_decode($json); echo "<pre>"; print_r($json);

?> Веселитесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...