Nucleus3.22でうまくpingができない場合
NucleusでのPingエラー関連の情報を探していたら、更新pingその後 - ぷちパワ/w.ZeRoというサイトで、対処方法を見つけました。
なんでも原因は、Nucleusからのping時のxmlに、<![CDATAが含まれることらしい。これは、Nucleusの3.22に含まれるxmlrpc.inc.phpの問題で、オリジナルのxmlrpc.incには含まれていないそうな。Nucleusで何か問題があったのかね。
上記サイトでは、最新版のxmlrpc.incファイルを入手して修正する方法を紹介していますが、それはちょっと怖いので、Nucleus 3.22に含まれるxmlrpc.inc.phpファイルを修正することにします。
の1665行目付近
1834行目
NP_SendPing 0.7もこれにあわせて修正します。
83行目
に変更。
早速pingしてみると、
おぉ、成功したよ。これで様子を見よう。
もし、
<link rel="alternate" type="application/rss+xml" title="RSS" href="xml-rss2.php" />
となっていたら、
<link rel="alternate" type="application/rss+xml" title="RSS" href="<%sitevar(url)%>xml-rss2.php" />
のように変更してください。
これでうちは、gooブログ検索にタイトルが出てくるようになりました。
なんでも原因は、Nucleusからのping時のxmlに、<![CDATAが含まれることらしい。これは、Nucleusの3.22に含まれるxmlrpc.inc.phpの問題で、オリジナルのxmlrpc.incには含まれていないそうな。Nucleusで何か問題があったのかね。
上記サイトでは、最新版のxmlrpc.incファイルを入手して修正する方法を紹介していますが、それはちょっと怖いので、Nucleus 3.22に含まれるxmlrpc.inc.phpファイルを修正することにします。
xmlrpc.inc.phpとNP_Sendpingの修正方法
/nucleus/libs/xmlrpc.inc.phpの1665行目付近
class xmlrpcval
{
var $me=array();
var $mytype=0;
function xmlrpcval($val=-1, $type='')
{
global $xmlrpcTypes;
$this->me=array();
$this->mytype=0;
if ($val!=-1 || !is_int($val) || $type!='')
{
をclass xmlrpcval
{
var $me=array();
var $mytype=0;
var $mode=0; //add by SakuraCandle
// function xmlrpcval($val=-1, $type='')
function xmlrpcval($val=-1, $type='',$mode=0) // change by SakuraCandle
{
global $xmlrpcTypes;
$this->me=array();
$this->mytype=0;
$this->mode = $mode; // add by SakuraCandle
if ($val!=-1 || !is_int($val) || $type!='')
{
に変更。1834行目
case $xmlrpcString:
// G. Giunta 2005/2/13: do NOT use htmlentities, since
// it will produce named html entities, which are invalid xml
// $rs.="<${typ}>" . xmlrpc_encode_entitites($val). "${typ}>";
// $rs.="<${typ}>" . htmlentities($val). "${typ}>";
// N. Leenheer 2005/6/30: Use CDATA instead...
$rs.="<${typ}><![CDATA[" . mb_convert_encoding($val, $xmlrpc_defencoding, _CHARSET). "]]>${typ}>";
break;
をcase $xmlrpcString:
// G. Giunta 2005/2/13: do NOT use htmlentities, since
// it will produce named html entities, which are invalid xml
// $rs.="<${typ}>" . xmlrpc_encode_entitites($val). "${typ}>";
// $rs.="<${typ}>" . htmlentities($val). "${typ}>";
// N. Leenheer 2005/6/30: Use CDATA instead...
// $rs.="<${typ}><![CDATA[" . mb_convert_encoding($val, $xmlrpc_defencoding, _CHARSET). "]]>${typ}>";
// break;
if (!$this->mode){ //change by SakuraCandle
$rs.="<${typ}><![CDATA[" . mb_convert_encoding($val, $xmlrpc_defencoding, _CHARSET). "]]>${typ}>";
} else {
$rs.="<${typ}>".mb_convert_encoding($val, $xmlrpc_defencoding, _CHARSET). "${typ}>";
}
break; // change end
へ。NP_SendPing 0.7もこれにあわせて修正します。
83行目
$ping_info = new xmlrpcmsg(
'weblogUpdates.ping',
array(
new xmlrpcval($name, 'string'),
new xmlrpcval($updateurl, 'string')
)
);
を$ping_info = new xmlrpcmsg(
'weblogUpdates.ping',
array(
// new xmlrpcval($name, 'string'),
// new xmlrpcval($updateurl, 'string')
new xmlrpcval($name, 'string',1),
new xmlrpcval($updateurl, 'string',1)
)
);
に変更。
早速pingしてみると、
[juntwo] Ping Message:http://www.blogpeople.net/servlet/weblogUpdates - Results:Thanks for the ping.
[juntwo] Ping Message:http://ping.myblog.jp/ - Results:Thanks for the ping.
おぉ、成功したよ。これで様子を見よう。
gooブログ検索へのping
どうも、gooブログの場合、linkタグでのrssファイルへのアドレス指定は、サイトアドレスから指定しないとだめなようです。もし、
<link rel="alternate" type="application/rss+xml" title="RSS" href="xml-rss2.php" />
となっていたら、
<link rel="alternate" type="application/rss+xml" title="RSS" href="<%sitevar(url)%>xml-rss2.php" />
のように変更してください。
これでうちは、gooブログ検索にタイトルが出てくるようになりました。
最終更新:06/06/11 10:20
関連記事[nucleus servlet xmlrpc]
- pingサーバまとめ::05/10 18:37:00
- Nucleus3.22でうまくpingができない場合
- ゴールドライタン復活::05/09 07:15:00
- コメントスパム::05/16 07:16:27
- Nucleus3.22でうまくpingができない場合
- はてなリング - Nucleus CMS登録とpingその後::05/08 22:46:00
コメント
コメントはありません。
コメントの追加
トラックバック
googleにPing送信。
OPEN SOURCE:
このブログでは福ろぐ様のNP_Sendpingを利用させて頂いているんですが、
googleにPing送信できることを知ったので、設定してみたところ…
Ping Message:http://blogsearch.google.co.jp/ping/RPC2 - Results:The si...
2007/02/26 11:11
NP_Sendping で正常にPINGが送れない場合の対処方法
福ろぐ:
NP_SendpingはNucleusに付属しているxmlrpcライブラリを使用してPingを送信していますが、それをそのまま利用するとPingを受け付けてくれない場合が多くあります。
解決策としては二つ方法があります。それを...
2006/06/04 00:12
Nucleusで更新pingを送る
南天dub:
blogに新しい記事を投稿したときに、記事を収集している場所に「更新したから見てね」という合図を送るのが、更新ping
国内でもこんなサイトはたくさんあって、さまざまなblogが更新されたかチェックしてます...
2006/05/23 19:07
このトラックバックURLを使ってこの記事にトラックバックを送ることができます。