我正在尝试ping(SEO策略称为“ping”用于新内容以使机器人将其编入索引更快)Google中的PHP。我唯一知道的是我需要将我的请求发送到以下网址: http://blogsearch.google.com/ping/RPC2
可能我可以使用PHP XML-RPC functions。我不知道如何格式化我的请求以及使用哪种方法。
答案 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
因此,如果您对其他人进行ping操作,其他人也应该能够ping你。
答案 1 :(得分:1)
嗯,我认为我们应该使用weblogUpdates.ping
或weblogUpdates.extendedPing
代替pingback.ping
来ping网站有关新内容的信息。
pingback.ping
用于从一个网站到另一个网站的新链接,而不是新内容。
答案 2 :(得分:0)
我认为您应该将weblogUpdates.extendedPing
与google blog search,weblogs,Pingomatic和weblogUpdates.ping
一起用于其他服务器。我创建了一个ping工具但是有些服务器使用http和https返回错误,我不能给出错误Online rpc xml ping