上のトラックバックpingを送るために外部の『よそにトラックバックpingを送れるcgi』を利用したのですが、ここから送るとうちのサイトでは受信できないのです(汗)。複数のサイトでダメだったので自分ところの受信処理がおかしいのだろうと調べだしたのですが、$_POST の中身を見てみると、本来 'url' とか 'blog_name' となっているべき変数名が 'amp;url' とか 'amp;blog_name' になってるんですねー。
むむむ、これはおかしい・・・ということで always_populate_raw_post_data = on にして $HTTP_RAW_POST_DATA を見てみますと、
&blog_name=%8DX%90V%97%9A%97%F0%82%C6%93%FA%8BL&title=%91S%91R ...というふうになっていました。こちらで期待している・・・というか、たぶんPHPが処理したかった内容は
blog_name=%8DX%90V%97%9A%97%F0%82%C6%93%FA%8BL&title=%91S%91R ...ですから、&記号で区切った後に amp;に続く文字列をそのまま変数名として処理したようです。そういえば XML ではこんなところもエンコードしなければいけなかったような・・・(←よく知らない^^;)。
てことで、この状態ではうちのトラックバックURLは多くのサイトが送信するトラックバックURLを受けられないと思われるので、応急措置として'amp;'始まる変数はこれを除去して扱うことにしました。PHPにもXML用の便利な関数とかがありそうなのですが、そんなの使って文字化けに悩むのもナニですし、そのうち何もしなくてもPHPで対応するような気もするので。←要するに手抜き
ちなみに、トラックバックを送るところは Free TrackBackというところもあるのですが、こちらを使うと url に'~hitorigoto/tb/1071' と入れているにもかかわらず '~hitorigoto/tb' にping が送られてしまって動きませんでした。むむむ、仕様書以外の仕様がいっぱいあるのかな~?
# livedoorとmyprofileから送ったトラックバックpingはなぜ正常に受信