2009年4月29日水曜日

twitter を表示させるPHP(2) 関数化で量産OK エラー処理付

twitter を使って簡単なチームのホームページとか作ったらおもしろいかなと思います。
昨日のを同じもの何枚も書くのも面倒なので、
関数化するというのをまたまたPHPプロで教えてもらいました。

そんな難しいことじゃないのに、正規表現というのを正しく知らないばかりに悩んでしまった。
でも、プログラミングってこうやって書いて覚えるものなんじゃないかなぁ。

2010年2月、結構深夜帯などにtwitter rssが取得できないことがあるのでメンテナンス中と表示させるようにしました。ファイルのあるなしとかではなく、単純に@をつけてエラーがなかったらという風にするというエラー制御演算子という裏技を知りました。 pear が使えるともうちょっとカッコイイのも書けるらしいが…

関数部分の logic.php
<?php
function view_twitter($rss_url,$user_name){
$name = $user_name;
$rdf_url = $rss_url;

// RSSを取得
@$content = file_get_contents($rdf_url);
if(strlen($content)){
$datas = analyze_rdf($content);
print make_html($datas[0]);}
else{print("メンテナンス中");}
}


function analyze_rdf($cnt) {
// <item> ~ </item> を切り出す
$ptn = '/<item[^>]*>(.+)</item>/sU';
preg_match_all($ptn, $cnt, $matches);

if (count($matches) > 0) {
$items = $matches[1];
} else {
return FALSE;
}
$return_array = array();
// パターンの指定
$ptns["title"] = $name.'/:(.*)</title>/sU';
$ptns["link"] = '/<link>(.*)</link>/sU';
$ptns["time"] = '/<pubDate>(.*)</pubDate>/sU';

// 各 img / title / link の抜き出し
foreach ($items as $val) {
$res = array();
preg_match($ptns["title"], $val, $matches);
$res["title"] = $matches[1];
preg_match($ptns["link"], $val, $matches);
$res["link"] = $matches[1];
preg_match($ptns["time"], $val, $matches);
$res["time"] = $matches[1];
//時間を短くトリム
$res["time"] = mb_strimwidth($res["time"] ,0,25);
$return_array[] = $res;
}

// 配列を返す
return $return_array;
}

// HTML に整形するための関数

function make_html($data) {
$str = "<p><a target="_blank" href="";
$str = "<p><a target="_blank" href="";
$str .= $data["link"] . "">";
$str .= $data["title"] . "</a><br /><div class="cn"><small>" .$data["time"] . "</small></div></p>n";
return $str;
} // function make_html($data) { 終了

?>



表示させるための twitter.php 
アカウント名と rssのアドレスを指定すれば、どんどん量産できます。
気になる人の最新のつぶやきが表示できるphpです。

<?php
require_once('logic.php');

$rss_url1 = 'http://twitter.com/statuses/user_timeline/26451428.rss'; // RSSのアドレス
$user_name = 'ikekumi'; // アカウント名

view_twitter($rss_url1, ikekumi); // メインの関数名です

?>


微妙に特殊文字変換で\とか落ちているので、html表示の記述のところを、お使いいなる場合はご注意ください。このままのコピペだとエラーになると思う。
twitter を利用して楽しいホームページが作れそうです。アイコンとかももってこれたらもっと便利になりそうですね。 それにしてもtwitter おもしろいシステムです! 広めようtwitter の輪。

タレント池田久美にはまだその良さがまったくわかってないみたい。
ikko ちゃんも やっているのにね~。

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

この前、http://uservoice.com/?lang=ja というおもしろそうなサイトについてtwitterにそれについて書いたら、その管理人さんがすぐに私をfollowしてくれてびっくり! アメリカではtwitter マーケティングばっちり始まっているなと思いましたね。


***************************************************
2010年1月
おもしろ心理教室の奥野先生(年齢不詳ですが、かなり上の方です…)を2時間説得しまして、奥野洋子の名言twitterを始めてもらい、このシステムを利用してサイト更新ができるようにしました。
twitterの良さをお客さんにわかってもらうのは、それこそキャズム超えってやつだなぁと実感しました。




********************************
簡単に自分のステイタスを表示する方法があるようです。
な~んじゃって感じですけど。パスワードわかんないとできないからね…



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

PHP5を使えるととても簡単です。


使えるPHPのtwitterプログラム10


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

お問合せフォーム

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


0 コメント :

コメントを投稿



連絡フォーム

名前

メール *

メッセージ *

サイト内検索

View My Stats