pearで更新pingの送信

2006/04/15 | XML

ブログの更新ping受信プログラムは手元にあったけど、送信プログラムがなかった。いろいろなところを参考にして、pearで作ったプログラムをメモ。

<?php
 require_once(‘XML/RPC.php’);
 
 $blogTitle=’My Blog';
 $blogTopUrl=’http://blog.example.com';
 
 $pingServer=’ping.example.net';
 $pingPath=’/';
 
 $param=array(
  new XML_RPC_Value($blogTitle,’string’),
  new XML_RPC_Value($blogTopUrl,’string’)
 );
 $msg=new XML_RPC_Message(‘weblogUpdates.ping’,$param);
 $client=new XML_RPC_Client($pingPath,$pingServer,80);
 $response=$client->send($msg);
 if($response->faultCode()){
  exit(‘failed’);
 }else{
  exit(‘success’);
 }
?>

PEARのXML_RSSが超簡単

2006/04/13 | XML

XML関連を自分でいろいろ実装するのは難しそう(無論勉強する必要はあるけれど)。ということで、いろいろなところからライブラリをあさっているのだが、まずはやはりPEARということで「XML_RSS」。サンプルをメモっておく。

<?php
 require_once(‘XML/RSS.php’);
 $rss=& new XML_RSS(‘http://blog.tekmemo.net/index.rdf’);
 $rss->parse();
 foreach($rss->getItems() as $item){
  print_r($item);
 }
?>

ライブドアのお天気情報がXMLで

2006/04/02 | XML

最近ライブドアからお天気情報がXMLで配信されるようになった。天気のXML化は本来気象庁がやるべきことのはずだけど、民間の気象関連業者の猛反対で実現していないらしい(なんでもHTMLで天気を配信することでももめたとか)。
自分の運営する某サイトで、勝手に気象庁データを取得して表示させる機能を作っていたけれど、それはあくまでHTMLを取得して解析して天気データを取り出すだけなので、HTMLがかわったりすると使えなくなってしまう。それに気象庁のサイトからデータを取ってきて表示させるのも、サーバに負荷もかかるし問題があるかもしれない。そういう諸事情もあってライブドアのお天気情報をハックすることにした(ライブドアではハックすることを推奨しているので)。
で、XMLデータを整理しないといけないのだが、一から作るのは面倒。で、いろいろ探し回ってXMLデータを整理して配列に格納してくれるライブラリを見つけた。ライブラリの入手先はここ。
http://keithdevens.com/software/phpxml#source
ただしこのライブラリ、そのまま使用するとNoticeレベルのエラーが出る。これはPHPのバージョンアップによるバグフィックスの結果の産物(別にエンバグしたわけでなく、元のプログラムに問題があるわけで・・・)。このバグを修正して使用すればOK。
最初のうちは試行錯誤していろいろプログラムを試していたけれど、このプログラムを使うと簡単。一瞬にしてデータを配列に格納してくれる。

ちなみにライブドアのお天気情報を整形して表示させるxoopsのモジュールを公開しているサイトがある。それはこっち(なんでも期間限定だそうな・・・)。
http://www.rc-net.jp/xoops/
ここではmagpierssを使用しているとのこと。使えるのはXMLデータの解析ではなく、お天気データと自作のお天気の画像アイコンを関連づける部分。アイコンをそのまま使うと問題があると思うのでアイコンは自作の必要がある。でもいくつあるかわからないお天気アイコンを闇雲に作るよりは、既存のコードに習って作るほうが「楽」ということで。

DOM XMLチュートリアル

2006/03/31 | XML

PHPでXMLを使える環境にはなったが、XMLのことをよく理解していないので、まだイマイチ使えない。ここに少しずつ備忘録としてメモしていくことにした。ただしPHP4の場合であり、PHP5になるとまた使い方が違うみたい。

<?php
//[1] $xmlがURLで与えられた場合
$dom=domxml_open_file($xml);
//[2] $xmlがファイルで与えられた場合
$dom=domxml_open_mem($xml);

//以下のメソッドは使い方まだわからない・・・
$root=$dom->document_element();
?>

上記[1][2]の部分で、Windows環境では[1]でローカルのファイル名を指定するとエラーになる(Linuxの場合は未確認)。

さて、とりあえず、ここからどう料理するかが問題・・・。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net