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’);
}
?>
2006/05/12 at 10:37 AM
いつも参考にさせていただいております。
上記のコードをちょっと試させていただきました。
$blogtitleの内容を日本語にすると、pingを受信してくれません。
103 XML error: no element found at line 6
とエラーが返ってきます。
文字コードの問題?と思いまして、
$blogTitle=mb_convert_encoding(‘ブログ’, ‘UTF-8′);
と設定してみましたが、結果はかわらずでした。
原因がわかりましたら、ご教授お願いします。
2006/05/12 at 12:14 PM
こんにちは。
はてさて。上記プログラムで、私の手元にあるping受信プログラムを使った場合、日本語文字をUTF-8に変更することで特に問題なく動作しています。
具体的な環境や動作条件などを教えていただけると検討できるかもしれません。
○ping送信先。
○エラーメッセージを誰が吐いているのか(サーバの返答?、それとも送信スクリプト?)。
○その他もろもろ。
2006/05/12 at 11:00 PM
こんばんわ。
if($response->faultCode())のブロックに
echo $response->faultCode()."¥n";
echo $response->faultString()."¥n";
を入れてみました。
そして、
$pingServer=’blog.goo.ne.jp';
$pingPath=’/XMLRPC';
に対して
$blogTitle=mb_convert_encoding(‘更新通知’, ‘UTF-8′);
でうってみると、
103 XML error: no element found at line 6
と返されます。これはサーバからの応答だと思います。
アルファベットだけですと、成功します。
XX募集掲示板に更新通知機能をつけたいと思ったのがきっかけです。
こちらも送っているデータの中身を見てみるなど、調べてみます。
2006/05/13 at 12:57 AM
うちでは成功するのですが・・・。
PHPのmbstring環境の設定とか、そういうのはどうでしょう。
2006/05/13 at 12:53 PM
レンタルサーバでやってみたら、日本語でもいけました。
家のWindows2000からでは上手くいきません。
プログラムと違うところに原因があるようです。
ありがとうございました。
2006/07/03 at 2:28 PM
初めまして。
サイトを拝見させていただきました。
ブログの更新pingを受信するプログラムを作りたいと思っていました。
だいたいの流れはわかるのですが、いざとなると悩んでしまいます。
もし出来ることでしたら、受信側のプログラムを公開してもらえませんでしょうか?
是非とも参考にさせて下さい。
何卒、よろしくお願いします。
2007/06/22 at 1:25 AM
初めまして。
いきなりのメッセージ失礼します。
こちらに記載のプログラムで、pingooに送信するよう変更し、
レンタルサーバー(xserver)で動作させようと思ったのですが、画面が真っ白になります。。。(一応phpファイルの文字コードはutf-8にしております)
何か原因にお心当たりがございましたら
お教えいただけませんでしょうか(涙
よろしくお願いします。