msnからのトラックバック2

数日前、msnのブログからのトラックバックではブログ名が取得できない、と書いたのだけれど、現在の動作状況を見てみると、とくにプログラムをいじらなくても(ブログ名の代わりに)ブログ作成者の「id」が取得できているようだ。msn側の仕様の変更なのか?あるいはこちらがMySQLに移行したことと関係があるのか(ないとは思うが)?
とにかく、ふたたびスクリプトの変更をしなくては。

前回紹介したのは、このようなスクリプト。

<MTPings>
<p id=”p<$MTPingID$>”>
& raquo; <a href=”<$MTPingURL$>”>
<?
$title = “<$MTPingTitle$>”;
if(preg_match(“/^http:\/\/spaces\.msn\.com/”, $title)){
$string = “<$MTPingURL$>”;
$list = explode (“/”, $string);
print “<$MTPingExcerpt$></a> from $list[4]”;
}
else { print “<$MTPingTitle$></a> from “; }
?>

<$MTPingBlogName$><br />
<$MTPingExcerpt$> <a href=”<$MTPingURL$>”>[続きを読む]</a> 
</p>
<p class=”posted”>トラックバック時刻: <$MTPingDate$></p>
</MTPings>

msnからのトラックバックだと、先週までは<$MTPingBlogName$>が空欄になっていたので、その代わりとして<$MTPingURL$>からmsnのメンバー名を取り出して($list[4])代入していたのだけれど、どうも<$MTPingBlogName$>でメンバー名が取得できるようになったようで、このスクリプトのままではトラックバック元のサイト名が「from everyday-albiday everyday-albiday」のように二重に表示されてしまう。そこで、

<MTPings>
<p id=”p<$MTPingID$>”>
& raquo; <a href=”<$MTPingURL$>”>
<?
$title = “<$MTPingTitle$>”;
if(preg_match(“/^http:\/\/spaces\.msn\.com/”, $title)){
$string = “<$MTPingURL$>”;
$list = explode (“/”, $string);
print “<$MTPingExcerpt$></a> from $list[4]“;
else { print “<$MTPingTitle$></a> from “; }
?>

<$MTPingBlogName$><br />
<$MTPingExcerpt$> <a href=”<$MTPingURL$>”>[続きを読む]</a> 
</p>
<p class=”posted”>トラックバック時刻: <$MTPingDate$></p>
</MTPings>

訂正線を引いた部分を削除する。これで「from everyday-albiday」のように表示されるようになる。
ただし、少なくとも4月6日以前のデータでは<$MTPingBlogName$>は空欄になっている。件数も少なかったので、古いPingデータはMySQLのデータを直接書き換えて対応してみた。



  •  

    ブログパーツの貼り付け方はこちらへ
  • 月別アーカイブ

  • あいさつ掲示板

  • メタ情報