计划步骤如下:
1,先通过twitter API把我的最新一部分tweets读出来,这个输出是个xml格式的文件;
2,把xml格式的文件用PHP的DOM库将这个xml里的各元素值取出来;
3,把这些值进行换行和加工,放在我的个人页面列表的右面。
待续
参考资料:
用 PHP 读取和编写 XML DOM
使用 Twitter REST API
curl_setopt函数相关参数介绍
< ?php
$tw = curl_init('http://www.twitter.com/statuses/user_timeline.xml?id=miajiao');
curl_setopt($tw, CURLOPT_VERBOSE, 0); //如果你想CURL报告每一件意外的事情,设置这个选项为一个非零值。
curl_setopt($tw, CURLOPT_HEADER, false);
curl_setopt($tw, CURLOPT_TIMEOUT, 10);
curl_setopt($tw, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($tw, CURLOPT_SSL_VERIFYPEER, 0);
@curl_setopt($tw, CURLOPT_FOLLOWLOCATION, false); //据说safe mod不能用,这个是bug
$twitter = curl_exec($tw);
curl_close($tw);
$doc = new DOMDocument();
$doc->loadXML($twitter);
$statuses = $doc->getElementsByTagName( "status" );
foreach( $statuses as $status )
{
$texts = $status->getElementsByTagName( "text" );
$text = $texts->item(0)->nodeValue;
$created_ats = $status->getElementsByTagName( "created_at" );
$created_at = $created_ats->item(0)->nodeValue;
$ids = $status->getElementsByTagName( "id" );
$id = $ids->item(0)->nodeValue;
// echo "$created_at”;
date_default_timezone_set('America/Toronto');
$differ = strtotime("now") - strtotime($created_at);
if ($differ < 0) $differ = 0;
if ($differ < 60) {
$dateFormated = floor($differ) . "秒前";
}
else if ($differ < 3600) {
$dateFormated = floor($differ/60) . "分钟前";
}
else if ($differ < 3600*24) {
$dateFormated = "约" . floor(($differ+800)/3600) . "小时前";
}
else {
$dateFormated = date('Y-m-d H:i:s', strtotime($created_at));
}
echo $text." ";
echo "$dateFormated";
}
}
? >
按:其中一部分编码来自山寨Youtube和中文推特圈。