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

dar*_*cro 8 php xml seo xml-rpc

我正试图ping(SEO策略称为"ping"用于新内容,以使机器人索引更快)谷歌在PHP.我所知道的只是我需要将我的请求发送到以下网址:http: //blogsearch.google.com/ping/RPC2

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

hak*_*kre 7

就您而言,您需要执行XML-RPC请求(示例#1).

如果您遵循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);
}
Run Code Online (Sandbox Code Playgroud)

哪个会给你以下输出:

Array
(
    [flerror] => 
    [message] => Thanks for the ping.
)
Run Code Online (Sandbox Code Playgroud)

通常,如果您不知道调用哪种方法,也可以尝试XML-RPC Introspection - 但并非所有XML-RPC服务器都提供此方法.


你在评论中问道:

根据规范,$targetURI应该是:"源站点上链接的目标.这应该是一个启用pingback的页面".如何启用启用pingback的页面,或者更重要的是,实际上是什么?

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

<link rel="pingback" href="http://hakre.wordpress.com/xmlrpc.php" />
Run Code Online (Sandbox Code Playgroud)

href点具有一个XML-RPC端点pingback.ping有效的方法.

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

X-Pingback: http://charlie.example.com/pingback/xmlrpc
Run Code Online (Sandbox Code Playgroud)

请参阅启用pingback的资源.

因此,如果你ping别人,其他人也应该能够ping你.