Свой блог движок, need help

Lord Maverik
На сайте с 15.04.2003
Offline
471
655

Может кто писал, интересует следующие. Реализация на php pingback технологии. И реализация пинга таких сетей как например технократи.

Сколько не читал, так чето не до понял. Может не очень хотел понять (код WP точно не ковырял)...В общем этот вопрос опустим :)

Если кто уже такое писал, не выложите примерчик?

RedMall.Ru (https://redmall.ru) - Товары из Китая (Таобао, Tmall) с проверкой качества, скидка для форумчан 7% Партнерская программа 2 уровня: 5% + 5%. Подробнее. (https://redmall.ru/about/partner/)
N_MONax
На сайте с 22.08.2007
Offline
112
#1

На самом деле всё просто.

Сам недавно добавлял такую функцию в свой двиг:


function ping ($url, $blogname, $blogurl) {
//Формируем запрос
$tb_send='<?xml version="1.0"?><methodCall>
<methodName>weblogUpdates.ping</methodName>
<params><param>
<value>'.$blogname.'</value>
</param><param><value>'.$blogurl.'</value>
</param></params></methodCall>';
//Отправляет запрос
$target=parse_url($url);
$tb_sock = fsockopen($target["host"], 80);
fputs($tb_sock, "POST " . $target["path"] . $target["query"] . " HTTP/1.1\r\n");
fputs($tb_sock, "User-Agent: Update.bot\r\n");
fputs($tb_sock, "Host: " . $target["host"] . "\r\n");
fputs($tb_sock, "Content-Type: text/xml\r\n");
fputs($tb_sock, "Content-length: " . strlen($tb_send) . "\r\n");
fputs($tb_sock, "Connection: close\r\n\r\n");
fputs($tb_sock, $tb_send);
// Получаем результат
while (!feof($tb_sock))
{$response .= fgets($tb_sock, 128);}
// Закрываем сокет
fclose($tb_sock);
// Всё сработало?
strpos($response, '<error>0</error>') ? $return = true : $return = false;
//Возвращаем результат
return $return;}
Полный спектр услуг в интернете. Быстро, Качественно, Дорого. Пишите в личку.
Lord Maverik
На сайте с 15.04.2003
Offline
471
#2

Что-то не замечаю в header 'X-Pingback: http://charlie.example.com/pingback/xmlrpc';

где урл есть - The value of the X-Pingback header MUST be the absolute URI of the pingback XML-RPC server

Инфа отсюда - http://www.hixie.ch/specs/pingback/pingback

Lord Maverik добавил 11.03.2008 в 06:37

Аааа.... походу дошло. Для начала перед пингом, нужно считать страницу, определить имеет ли движок ее сгенерироваший пингбек сервис, выявить его и даллее отправить по урлу этого сервиса адрес нашей страницы и адрес страницы куда ссылаемся.

Соотвественно по документации нужно мне на php описание функции - pingback.ping:

pingback.ping('http://alice.example.org/#p123', 'http://bob.example.net/#foo')

Короче, я блин опять запутался, кто чего куда посылает :(

N_MONax, я так понимаю в function ping ($url, $blogname, $blogurl)

$url - адрес страницы на исходном блоге (нового поста посути), $blogurl - это адрес пингсервера или адрес страницы на которую ссылаемся?

N_MONax
На сайте с 22.08.2007
Offline
112
#3

Lord Maverik, Нет, не правильно.

Яндекс тут пишет следующее:


Как это работает?
Каждый раз, когда вы публикуете новую запись в своём дневнике, ваш сервер должен посылать Яндексу специальное сообщение по протоколу XML-RPC.
Адрес: http://ping.blogs.yandex.ru/RPC2
Метод: weblogUpdates.ping (weblogname, weblogurl, changesurl=weblogurl, categoryname="none") returns struct;
Пример сообщения:

POST /RPC2 HTTP/1.0
User-Agent: Radio UserLand/7.1b7 (WinNT)
Host: rpc.weblogs.com
Content-Type: text/xml
Content-length: 250


<?xml version="1.0"?>
<methodCall>
<methodName>weblogUpdates.ping</methodName>
<params>
<param>
<value>Scripting News</value>
</param>
<param>
<value>http://www.scripting.com/</value>
</param>
</params>
</methodCall>

Таким образом, протоколам не предусмотрена ссылка на новую страницу. Пинг-сервер запрашивает RSS и сам ищет новые записи.

По моей функции:

function ping ($url, $blogname, $blogurl)

$url - Адрес пинг-сервера (например, http://ping.blogs.yandex.ru/RPC2)

$blogname - Название вашего блога

$blogurl - URL вашего блога (например, myblog.ru)

Lord Maverik
На сайте с 15.04.2003
Offline
471
#4

N_MONax, это выходит как раз второй мой вопрос, пинг таких сетей как технократи, ну и яндекс :)

А я еще веду речь про pingback - это несколько другой. Это метод общения меж блогами, когда один блог сообщает другому, что появилась на него ссылка.

N_MONax
На сайте с 22.08.2007
Offline
112
#5

Lord Maverik, ааа .... ну тогда вам сюда:

http://www.quietearth.us/articles/2006/10/30/Coding-your-own-blog-Pingback-in-php

Lord Maverik
На сайте с 15.04.2003
Offline
471
#6

спасибо, то что надо!

MM
На сайте с 10.04.2008
Offline
48
#7

здравствуйте. Смежный вопрос по пингам: возможно ли реализовать их отправку без использования сокетов?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий