<?php
/*
* Application: Martin Blog Ping v0.5
* Author: Martin Nielsen mail[at]martin-nielsen[dot]com
* URL: http://martin-nielsen.com
* Released: April 03, 2008
* Description: Et script til at pinge blog indexes
* Usage: blogPing('http://dinblogurl.com','Blog navn');
*/

//indstillinger
$blogUrl='http://dinblogurl.dk'//din blog url
$blogName='Din beskrivelse'//blog titel

function blogPing($blogUrl,$blogName,$pingUrl) {
    
//xml
    
$xmlRequest ='<?xml version="1.0"?>'."\n";
    
$xmlRequest.='<methodCall>'."\n";
    
$xmlRequest.='<methodName>weblogUpdates.ping</methodName>'."\n";
    
$xmlRequest.='<params>'."\n";
    
$xmlRequest.='<param><value><string>'.htmlspecialchars($blogName).'</string></value></param>'."\n";
    
$xmlRequest.='<param><value><string>' htmlspecialchars($blogUrl) . '</string></value></param>'."\n";
    
$xmlRequest.='</params>'."\n";
    
$xmlRequest.='</methodCall>';    
    
//curl kald
    
$cPing curl_init(); //start curl
    //curl options
    
curl_setopt($cPing,CURLOPT_URL,$pingUrl); 
    
curl_setopt($cPing,CURLOPT_RETURNTRANSFER,1); 
    
curl_setopt($cPing,CURLOPT_HTTPHEADER,array('Content-Type: text/xml'));
    
curl_setopt($cPingCURLOPT_POST,1);
    
curl_setopt($cPing,CURLOPT_POSTFIELDS,$xmlRequest);
    
curl_setopt($cPingCURLOPT_TIMEOUT20);
    
$responseContent =  curl_exec($cPing); //udfør kald
    
$responseCode curl_getinfo($cPing); //hent header info
    
curl_close($cPing); //luk curl
    
preg_match('#<name>message</name>\s*<value>(\s*<string>)?([^</]*)(</string>\s*)?</value>#i'$responseContent$msg);
    
preg_match('#<name>flerror</name>\s*<value>(\s*<boolean>)?([^</]*)(</boolean>\s*)?</value>#i'$responseContent$msg2);
    if (
$responseCode['http_code']!=200) {
        return 
'<span style="color:red"><strong>FEJL:</strong> kunne ikke kontaktes</span><br />';
    } elseif(
$msg2[2]==1) {
        return 
'<span style="color:red"><strong>Der opstod en fejl:</strong> '.$msg[2].'</span><br />'
    } else {
        return 
' - PING OK<br/>';
    }
}
// Array med ping urls
$pingUrls = array(
    
'http://blogbot.dk/io/xml-rpc.php',
    
'http://rpc.weblogs.com/RPC2',
    
'http://overskrift.dk/ping/',
    
'http://rpc.twingly.com/',
    
'http://blogsearch.google.com/ping/RPC2',
    
'http://rpc.technorati.com/rpc/ping',
    
'http://ping.feedburner.com',
    
'http://api.moreover.com/ping',
    
'http://api.my.yahoo.com/RPC2',
    
'http://api.my.yahoo.com/rss/ping',
    
'http://bblog.com/ping.php',
    
'http://blog.goo.ne.jp/XMLRPC',
    
'http://ping.bitacoras.com',
    
'http://ping.bloggers.jp/rpc/',
    
'http://ping.myblog.jp',
    
'http://ping.syndic8.com/xmlrpc.php',
    
'http://ping.weblogalot.com/rpc.php',
    
'http://pingoat.com/goat/RPC2',
    
'http://rpc.icerocket.com:10080/',
    
'http://rpc.pingomatic.com/',
    
'http://topicexchange.com/RPC2',
    
'http://www.bitacoles.net/ping.php',
    
'http://www.blogdigger.com/RPC2',
    
'http://www.blogpeople.net/servlet/weblogUpdates',
    
'http://www.blogsnow.com/ping',
    
'http://www.overskrift.dk/ping/',
    
'http://www.popdex.com/addsite.php',
    
'http://wasalive.com/ping/',
    
'http://xping.pubsub.com/ping/'
);

foreach (
$pingUrls as $pingUrl) {
    echo 
'Pinger: '.$pingUrl;
    
flush();
    echo 
blogPing($blogUrl,$blogName,$pingUrl);
}

?>