我正在尝试用PHP对谷歌进行ping(称为"ping"的SEO策略用于新内容,以使机器人更快地对其进行索引)。我唯一知道的是,我需要将我的请求发送到以下网址:http://blogsearch.google.com/ping/RPC2
也许我可以使用PHP XML-RPC函数。我不知道如何格式化我的请求以及使用哪种方法。
就您所关心的XML-RPC请求而言(示例#1)。
如果你遵循ping back的规范,它看起来像这样:
$sourceURI = 'http://example.com/';
$targetURI = 'http://example.com/';
$service = 'http://blogsearch.google.com/ping/RPC2';
$request = xmlrpc_encode_request("pingback.ping", array($sourceURI, $targetURI));
$context = stream_context_create(array('http' => array(
'method' => "POST",
'header' => "Content-Type: text/xml",
'content' => $request
)));
$file = file_get_contents($service, false, $context);
$response = xmlrpc_decode($file);
if ($response && xmlrpc_is_fault($response)) {
trigger_error("xmlrpc: $response[faultString] ($response[faultCode])");
} else {
print_r($response);
}
这将为您提供以下输出:
Array
(
[flerror] =>
[message] => Thanks for the ping.
)
通常,如果您不知道调用哪种方法,也可以尝试XML-RPC Introspection,但并不是所有的XML-RPC服务器都提供这种功能。
你在评论中问道:
根据规范,
$targetURI
应该是:"源站点上链接的目标。这应该是一个启用了pingback的页面"。我该如何使启用回铃音的页面,或者更重要的是,它到底是什么?
启用pingback的站点是一个同时发布XML-RPC pinbback服务的网站。这是通过<head>
部分中的HTMl <link>
元素完成的。示例:
<link rel="pingback" href="http://hakre.wordpress.com/xmlrpc.php" />
href
指向一个XML-RPC端点,该端点具有可用的pingback.ping
方法。
或者通过发送一个特定的HTTP响应头来完成:
X-Pingback: http://charlie.example.com/pingback/xmlrpc
请参阅启用了ping back的资源。
所以,如果你ping别人,别人也应该能够ping你。
Ummm,我认为我们应该使用weblogUpdates.ping
或weblogUpdates.extendedPing
而不是pingback.ping
来ping网站的新内容。
pingback.ping
用于从一个站点到另一个站点的新链接,而不是用于新内容。
我认为你应该将weblogUpdates.extendedPing
与谷歌博客搜索、博客、Pingomatic和weblogUpdates.ping
一起用于其他服务器。我创建了一个ping工具,但一些服务器返回了一个http和https错误,我不能给出一个错误Online rpc xml ping