Pingen, aber wie?

Um die Frage, wie man Pingomatic anpingen kann, nicht im geschlossenen Rahmen einer EMail zu beantworten ein paar Zeilen zum Thema.

Zum einen natürlich die Weichspüler-Variante mit dem Formular. Hat man das einmal ausgefüllt und abgeschickt, kann man die URL der Zielseite als Bookmark ablegen, um nicht jedes Mal auf’s neue alles ausfüllen zu müssen.

Die unverhältnismäßig viel kühlere Varianten ist natürlich per Skript einen Ping abzusetzen. Wer auf die Idee kommt, die o.g. Ergebnis URL per file() oder so zu laden, wird sich einen Wolf warten. Einfacher ist es eine der unzähligen XML RPC Klassen oder Funktionen zu benutzen. Mein Blogsystem basiert auf PHP und ich habe mich für die Incutio XML-RPC Library entschieden. Dafür gibt’s keine weltbewegenden Gründe, es lag einfach schon vor Ort, da bspw. auch Textpattern diese Bibliothek benutzt.

Folgender PHP-Codeschnipsel erledigt für mich die Ping-Angelegenheiten meiner beiden Blogs:

require( "IXRClass.php" );

switch( $_GET["blog"] ) {
  case "linkdump":
    $blogname = "LinkDump";
    $blogurl  = "http://linkdump.de/";
    $msg      = "Ping für Linkdump wird abgeschickt";
    break;

default:
  case "journal":
    $blogname = "M. Kniebes Journal";
    $blogurl  = "http://kniebes.net/mk/";
    $msg      = "Ping für's Journal wird abgeschickt";
    break;
}

switch( $_GET["service"] ) {
  case "weblogscom":
    $clnt = new IXR_Client('http://rpc.weblogs.com');
    $s = "Weblogs.com";
    break;

  case "blogbot":
    $clnt = new IXR_Client('http://xmlrpc.blogbot.de');
    $s = "blogbot.de";
    break;

default:
  case "pingomatic":
    $clnt = new IXR_Client('http://rpc.pingomatic.com/');
    $s = "Pingomatic.com";
    break;
}

$res = $clnt->query(
  'weblogUpdates.ping',
  $blogname,
  $blogurl
);

$o[] = "<h2>$msg</h2>";
$o[] = "<p><b>Pingresult ({$s})</b>:$res</p>";

Wie Florian schon richtig bemerkte ist es wichtig den letzten „/“ bei der Pingomatic URL zu beachten.