【发布时间】:2012-03-23 06:21:44
【问题描述】:
我正在尝试 ping(称为“ping”的 SEO 策略用于新内容以让机器人更快地对其进行索引)Google 中的 PHP。我唯一知道的是我需要将我的请求发送到以下网址: http://blogsearch.google.com/ping/RPC2
也许我可以使用 PHP XML-RPC functions。我不知道如何格式化我的请求以及使用哪种方法。
【问题讨论】:
我正在尝试 ping(称为“ping”的 SEO 策略用于新内容以让机器人更快地对其进行索引)Google 中的 PHP。我唯一知道的是我需要将我的请求发送到以下网址: http://blogsearch.google.com/ping/RPC2
也许我可以使用 PHP XML-RPC functions。我不知道如何格式化我的请求以及使用哪种方法。
【问题讨论】:
就您而言,执行 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 服务的网站。这是通过 <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 其他人,其他人也应该能够 ping 您。
【讨论】:
嗯,我认为我们应该使用 weblogUpdates.ping 或 weblogUpdates.extendedPing 而不是 pingback.ping 来 ping 网站以了解新内容。
pingback.ping 用于从一个站点到另一个站点的新链接,而不是用于新内容。
【讨论】:
我认为您应该将weblogUpdates.extendedPing 与谷歌博客搜索、博客、Pingomatic 和weblogUpdates.ping 一起用于其他服务器。我创建了一个 ping 工具,但某些服务器使用 http 和 https 返回错误,我无法给出错误Online rpc xml ping
【讨论】: