如何从用户的Twitter时间轴中读取所有<status>标签?</status>

时间:2012-08-12 21:08:25

标签: php curl twitter preg-match-all

我正在尝试用cURL阅读twitter时间线,由于某种原因我无法使用preg_match。这是我目前的代码,你看到有什么问题吗?

$feed = "http://twitter.com/statuses/user_timeline/antonpug.xml?count=3";

function parse_feed($feed) {
    //$matches = Array();
    preg_match_all("/<status>(.*?)<\/status>/", $content[0], $matches);

    return $matches[0];

    //$stepOne = explode("<content type=\"html\">", $feed);
    //$stepTwo = explode("</content>", $stepOne[1]);
    //$tweet = $stepTwo[0];
    //$tweet = htmlspecialchars_decode($tweet,ENT_QUOTES);
    //return $tweet;
}

//Initialize the Curl session
$ch = curl_init();
//Set curl to return the data instead of printing it to the browser.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//Set the URL
curl_setopt($ch, CURLOPT_URL, $feed);
//Execute the fetch
$twitterFeed = curl_exec($ch);
//Close the connection
curl_close($ch);

//$twitterFeed = file_get_contents($feed);
echo(parse_feed($twitterFeed));

1 个答案:

答案 0 :(得分:0)

我想更好的想法是使用simplexml与对象一起使用XML。 那么你的功能就像是

function parse_feed($feed) {
    $xml = simplexml_load_string($feed);
    if(isset($xml->status)) {
        return $xml->xpath('status');
    } else {
        return false;
    }
}

它将返回simplexml对象。