<?php
// URLの指定
$rdf_url = "http://www.thetruth.jp/atom.php?blogid=4";
// RSSを取得
$content = file_get_contents($rdf_url);
// rdfを解析する (下の関数で処理)
$datas = analyze_rdf($content);
// rdf ファイルを解析するための関数
function analyze_rdf($cnt) {
// <item> ~ </item> を切り出す
$ptn = '/<entry[^>]*>(.+)</entry>/sU';
preg_match_all($ptn, $cnt, $matches);
// マッチしてれば
if (count($matches) > 0) {
// 配列に入れる
$items = $matches[1];
} else {
return FALSE;
}
// パターンの指定
$ptns["img"] = '!<img[st]+src[st]*="(.*)"[^/>]*?/>!sU';
$ptns["link"] = '/<link rel="alternate" type="text/html" href="(.*)" />/sU';
$ptns["title"] = '/<title type="html"><![CDATA[(.*?)]]></title>/sU';
$return_array = array();
// link の抜き出し
foreach ($items as $val) {
$res = array();
preg_match($ptns["img"], $val, $matches);
$res["img"] = $matches[1];
preg_match($ptns["link"], $val, $matches);
$res["link"] = $matches[1];
preg_match($ptns["title"], $val, $matches);
$res["title"] = $matches[1];
$return_array[] = $res;
}
// 配列を返す
return $return_array;
}
// $count 個分の配列を生成
for ($i = 0; $i < $count; $i++) {
$tmp_array[] = $i;
}
// HTML に整形するための関数
function make_html($data) {
$str = "<a target="_parent" href="" . $data["link"] . "">";
$str .= "<img src="". $data["img"] ."" width="264" height="215" alt="パチンコ楽しい!:". $data["title"] . "" /></a>";
return $str;
}
$num = rand(0,3);
print make_html($datas[$num]);
?>
正規表現を実はまったく知らないのに人のを見て想像して書いています。勉強したいけどもうあれは頭に入りません。チンプンカンプンに頭がなります… orz
フラッシュなんかにも加工できるかも。
尚、このプログラム、nucleusを私はTinyMCEで運用しているのですが、なぜか最新のTineMceと古いのでは
これを追求すると疲れそうなので次の機会に…。 あ~もう。
0 コメント :
コメントを投稿
コメントありがとうございます。