仕組み
このスクリプトは、開発中のプロジェクトの1つ用に作成しました。 原則は簡単です。必要なユーザーのRSSフィードが読み込まれ、最後のエントリが選択され、必要に応じてテキストファイルにキャッシュされます。 XMLは
DOMDocument
を介して処理されます。
public $cache_file
は、キャッシュファイルの場所を定義します。
public $cache_period
は、キャッシュのリフレッシュレートを担当し
public $cache_period
。 秒単位で示されます( 3600は1時間に相当します)。 値が0の場合、キャッシュは無視されます。
他のすべては理解できると思います。 ご質問がある場合は、お問い合わせください。
コンパイル済みコード
class GetLastTwitt{
public $cache_file = './last_twitt.txt';
public $cache_period = 3600;
private $username;
private $dom;
function __construct($username){
$this->username = $username;
}
private function setEnv(){
$feed_url = 'http://twitter.com/statuses/user_timeline/'.$this->username.'.rss';
$this->dom = new DOMDocument();
$this->dom->load($feed_url);
}
private function returnLastTwitt (){
if ($this->cache_period != 0)
if (file_exists($this->cache_file))
if ($this->cache_period > $this->getCacheDateDiff())
return $this->getLastFromCache();
return $this->getLastFromWeb($this->username);
}
private function getLastFromWeb($username){
$this->setEnv();
$rows = $this->dom->getElementsByTagName('item');
$last_twitt = $rows->item(0)->getElementsByTagName('title')->item(0)->nodeValue;
$this->cache_twitt($last_twitt);
return $last_twitt;
}
private function cache_twitt($msg){
$handle = fopen($this->cache_file,'w');
fwrite($handle, $msg);
fclose($handle);
}
private function getCacheDateDiff(){
return date('U') — filemtime($this->cache_file);
}
private function getLastFromCache(){
$handle = fopen($this->cache_file,'r');
$cached_twitt = fread($handle, filesize($this->cache_file));
fclose($handle);
return $cached_twitt;
}
final function getLast(){
return $this->returnLastTwitt();
}
}
$a = new GetLastTwitt('skaizer');
echo $a->getLast();
ダウンロードする
質問
ところで、このスクリプトをブログなどのサイトに統合すると、検索エンジンロボットによるサイトへのアクセス頻度が増加するのかという疑問が生じました。 実際、Twitterで新しい更新が行われるたびに、サイトのほぼすべてのページでコンテンツが変更されるため、検索エンジンはコンテンツの更新を頻繁に記録する必要があります。
私のブログでこのトピックのミラー。