XML-RPC pinging(谷歌和其他人)

时间:2012-03-05 19:07:16

标签: php xml seo xml-rpc

我正在尝试ping(SEO策略称为“ping”用于新内容以使机器人将其编入索引更快)Google中的PHP。我唯一知道的是我需要将我的请求发送到以下网址: http://blogsearch.google.com/ping/RPC2

可能我可以使用PHP XML-RPC functions。我不知道如何格式化我的请求以及使用哪种方法。

3 个答案:

答案 0 :(得分:7)

就您而言,您需要执行XML-RPC请求(Example #1)。

如果您按照specification of a pingback进行操作,则会显示如下:

$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的页面,或者更重要的是,实际上是什么?

启用pingback的站点也是一个宣布XML-RPC pinbback服务的网站。这是通过<link>部分中的HTMl <head>元素完成的。例如:

<link rel="pingback" href="http://hakre.wordpress.com/xmlrpc.php" />

href指向可用pingback.ping方法的XML-RPC端点。

或者通过发送特定的HTTP响应头来完成:

X-Pingback: http://charlie.example.com/pingback/xmlrpc

请参阅pingback-enabled resource

因此,如果您对其他人进行ping操作,其他人也应该能够ping你。

答案 1 :(得分:1)

嗯,我认为我们应该使用weblogUpdates.pingweblogUpdates.extendedPing代替pingback.ping来ping网站有关新内容的信息。

pingback.ping用于从一个网站到另一个网站的新链接,而不是新内容。

答案 2 :(得分:0)

我认为您应该将weblogUpdates.extendedPing与google blog search,weblogs,Pingomatic和weblogUpdates.ping一起用于其他服务器。我创建了一个ping工具但是有些服务器使用http和https返回错误,我不能给出错误Online rpc xml ping