在 什么是google blog ping 服务? 这篇文章中,我们了解了什么是google blog ping 以及如何手动实现,如何在程序中实现自动ping?
google还提供了一套xml格式的协议,按照相应的格式 POST方式提交到相应的地址就可以了。以下是我的部分代码,请参考:
function googleping ($blogname, $webaddress, $urladdress, $rssaddress, $categoryname) {
$url="http://blogsearch.google.com/ping/RPC2";
$trackback_url=parse_url($url);
$out="POST /ping/RPC2 HTTP/1.0\r\n";
$out.="Host: blogsearch.google.com\r\n";
$out.="Content-Type: text/xml; charset=utf-8\r\n"; $query_string="<?xml version=\"1.0\"?>\r\n<methodCall>\r\n<methodName>weblogUpdates.extendedPing</methodName>\r\n<params>\r\n<param>\r\n<value>{$blogname}</value>\r\n</param>\r\n<param>\r\n<value>{$webaddress}</value>\r\n</param>\r\n<param>\r\n<value>{$urladdress}</value>\r\n</param>\r\n<param>\r\n<value>{$rssaddress}</value>\r\n</param>\r\n<param>\r\n<value>{$categoryname}</value>\r\n</param>\r\n</params>\r\n</methodCall>"; $out.='Content-Length: '.strlen($query_string)."\r\n";
$out.="User-Agent: www.maycode.com\r\n\r\n";
$out.=$query_string;
$trackback_url['port']=80;
$fs=fsockopen($trackback_url['host'], $trackback_url['port'], $errno, $errstr, 10);
if (!$fs) return false;
fputs($fs, $out);
$http_response = '';
while(!feof($fs)) {
$http_response .= fgets($fs, 128);
}
@fclose($fs);
echo $http_response;
return true;
}
在提交文章后,可以调用这段代码,实现自动提交。