2009年5月1日金曜日

simpleXML でRSSの表示 PHP5 (twitter 2012年変更)

ブログの情報をサイトに載せたいというのはよくある欲求ですが…。
php5が使えるのなら、これだけで表示できることがわかった…。
これだと加工も簡単です。3つだけ表示させるとき。


<?php
$xml = simplexml_load_file('http://blog.goo.ne.jp/jhta0729/index.rdf');

$i = 0;
foreach ($xml->item as $item) {
if(++$i>3) break;
$title = (string)$item->title ;
$link = (string)$item->link ;

print ($title.$link."<br>");
}

?>


item で囲まれているxml じゃないこともあります。 
例えばtwitter なら

foreach($xml->channel->item as $item)

にする。 チャンネルの次の段階のitemを抜き出せということです。

こうなってくるとPHP5じゃないとイヤだなと。

尚、twitterのrssですが、旧のtwitter表示の右下にあるrssボタンは友達も含めてのタイムラインなので、自分のを表示したい場合は、http://twitter.com/statuses/user_timeline/数字.rss に書き換えます。
結構取得するときにエラーも出るので、@を使って制御したらいいと思います。

例えば… これは山岸健康院さんのrssです。
<?php
$my_file = @file('http://twitter.com/statuses/user_timeline/17017666.rss') or print ("メンテナンス中");
ini_set('display_errors', 'Off'); //エラー非表示
$i= 0;
$xml=simplexml_load_file('http://twitter.com/statuses/user_timeline/17017666.rss');
foreach($xml->channel->item as $item){
if(++$i>3) break;
$title = (string)$item->title; 
$title = mb_strimwidth($title,10,122); //名前を切って適当な長さに調整します
$link = (string)$item->link;
print ("<p><a href=’".$link."’>".$title."</a></p>");
}
?>

2012年 ツイッターの仕様が変更になったようです。
もうダメかJavaScriptで取得するしかないのか?と焦りましたが…
こちらの記事を参考にして まだ取れるようです。

https://api.twitter.com/1/statuses/user_timeline/kenkouin.xml?count=5&include_rts=true

こうすると5個取れまして、incluse_rts を trueにするとリツリートを含むという意味になり、そうすると5個表示されますが、含まないfalseにしたら、数が単純に減ります。
新しいxmlは…


$xml=simplexml_load_file('https://api.twitter.com/1/statuses/user_timeline/kenkouin.xml?count=5&include_rts=1callback=?');
$i= 0;
foreach($xml ->status as $item){
if(++$i>4) break;
$text = (string)$item->text;
$id = (string)$item->id;
$text = mb_strimwidth($text,0,48);
print ("<p><a href=https://twitter.com/kenkouin/status/".$id.">".$text." ...</a></p>");
}

となるようです。いったいこれもいつまで使えるのでしょうか?
なんかこれだったら、3月過ぎても使えるじゃないのだろうか? 今ひとつわからない~。

↓ここに…twitter でもらったのを貼ってみたが、動かない…orz



私のデスクトップ環境のWebMatrixはうまくいくのだが…
なんかなぁこの英語の文章がもひとつわからない。
*****************************************

PHP4のtwitter表現方法はこちらです。

PHP4正規表現でxml形式で抜き出す方法(ぶろぐんRSSの場合)

jQueryを使ってAjax()で表示させる方法はこちらです


****************************************

ご紹介頂きました。そんなことメッタにないので嬉しいです(^^♪

この書き方も名前消すのいいと思います。


twitterロゴを作るのに便利なフォントPico_winTTなんてのもあります。

*メモ*
この頃 facebookもきてますが、世話しているバイオロイスさんの graph apiで取得は
https://graph.facebook.com/203616299672759/
で取れました。
これ取れたかからってどうってことないけど、只今の いいねの数とかを抽出してホームページに表示するくらいですかね。








お問合せフォーム

お名前 :
Email: (必須)
メッセージ: (必須)


0 コメント :

コメントを投稿



連絡フォーム

名前

メール *

メッセージ *

サイト内検索