簡體   English   中英

如何使用cURL / PHP將當前的Twitter趨勢主題轉儲到MySQL中

[英]How do I use cURL/PHP to dump the current twitter trending topics into mySQL

嘗試每隔幾個小時運行一次cron作業,該作業會閱讀此處列出的當前Twitter趨勢主題:

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

然后將十大趨勢轉儲到服務器上的mySQL表中

這個怎么做? 謝謝

這里有一些指針可以幫助您:


要使用curl,您需要初始化一個連接, 配置它並執行它。

例如,可能會執行以下操作(非常基本的示例)

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

這包含從twitter獲得的全部數據。


將數據插入數據庫:

現在,您必須遍歷“趨勢”數組,並針對每一行將其插入到MySQL數據庫中。

為此,您可以使用:

使用准備好的語句也可能有幫助( mysqlipdo );-)
無論如何,如果您沒有使用准備好的語句,則必須使用mysqli_real_escape_stringPDO::quote轉義數據。

在這里,您當然需要已經有了一個具有正確結構的表格; 我還假設您知道如何在MySQL表中插入數據。


如果您有更具體的問題,請不要猶豫,使用一些您正在使用的不起作用的代碼示例(當然還有對不起作用的描述/所得到的錯誤消息)


玩得開心 !


<?php

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

?>

玩得開心。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM