Что касается вас, чтобы выполнить запрос XML-RPC ( Пример # 1 ).
Если вы следуете спецификации пингбека , это будет выглядеть так:
$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 - но не все серверы XML-RPC предлагают это.
Вы спросили в комментарии:
Согласно спецификации, $targetURI
должно быть: "Цель ссылки на исходном сайте. Это ДОЛЖНА быть страница с поддержкой pingback" . Как сделать страницу с поддержкой pingback или, что более важно, что это на самом деле?
Сайт с поддержкой пингбэка - это веб-сайт, который также объявляет службу привязки XML-RPC. Это делается с помощью элемента HTMl <link>
в разделе <head>
. Пример:
<link rel="pingback" href="http://hakre.wordpress.com/xmlrpc.php" />
href
указывает на конечную точку XML-RPC, для которой доступен метод pingback.ping
.
Или это делается отправкой специального HTTP-заголовка ответа:
X-Pingback: http://charlie.example.com/pingback/xmlrpc
См. ресурс с поддержкой pingback .
Так что, если вы пингуете других, другие тоже могут пинговать вас.