Место для вас

Пинг Yandex, Google и Pingomatic о новой записи

Сегодня хочу поделиться еще одним небольшим скриптом, который пингует о новом посте популярным поисковикам, как Yandex и Google и сервису Pingomatic.

Если вы используете для своего сайта уже готоую cms такую, как Wordpress, Joomla и другую популярную cms, то вам повезло, так как для этих cms уже есть готовые решения. Надо только установить эти плагины или расширения и пользоваться ими. Но что делать если вы используете фреимворк или же cms, для которых еще не реализованы решения. То в этом случае все придется делать своими ручками.

Но не пугайтесь. Все довольно просто. С этим справиться самый начинающий junior.

Тут самоме сложное - это получить ссылку на пост в нужном виде.

Хочу заметить, что поисковики и так сами обновляют свои базы, если вы добавили ваш сайт в webmaster tools, но я все равно их оповещаю cron'ом разок в неделю. На всякий случай вот список. Мало ли это для кого-то еще секрет:

  • https://webmaster.yandex.ru/
  • https://www.google.com/webmasters/tools/home?hl=ru
  • www.bing.com/toolbox/webmaster


// подключаем вспомогательный класс (см. прикрепленные файлы)
include('IXR_Library.php');

// необходимая информация
$siteName = 'SiteName title';
$siteURL  = 'http://www.site.com/';
$postURL  = 'http://www.site.com/link-to-site-post.html';
$feedURL  = 'http://www.site.com/rss.xml';
$sitemapURL  = 'http://www.site.com/sitemap.xml';

// отправка сообщения если ошибка
$error = FALSE;
function postSendErrorEmail($searchEng, $errorCode, $errorMsg)
{
        $headers = "From: noreply@site.com";
        $to = "support@site.com";
        $subject = "Bad post ping!!!";
        $message = "Search: ".$searchEng."
Code: ".$errorCode.".
Message: ".$errorMsg;

        mail($to, $subject, $message, $headers);
}


/*отправляем пинг yandex*/
$pingClient = new IXR_Client('ping.blogs.yandex.ru', '/RPC2');

if(!$pingClient->query('weblogUpdates.ping', $siteName, $siteURL, $postURL))
{
    $error = TRUE;
    postSendErrorEmail('Yandex', $pingClient->getErrorCode(), $pingClient->getErrorMessage());
}

sleep(1);

/*отправляем пинг google*/
$pingClient = new IXR_Client('blogsearch.google.com', '/ping/RPC2');
if(!$pingClient->query('weblogUpdates.extendedPing', $siteName, $siteURL, $postURL, $feedURL))
{
    $error = TRUE;
    postSendErrorEmail('Google', $pingClient->getErrorCode(), $pingClient->getErrorMessage());
}

sleep(1);

/*отправляем пинг pingomatic*/
$url = parse_url("http://rpc.pingomatic.com");
$pingClient = new IXR_Client($url['host'], (isset($url['path']) ? $url['path'] : '/'));
if(!$pingClient->query('weblogUpdates.extendedPing', $siteName, $postURL, '', $feedURL))
{
   	$pingClient = new IXR_Client($url['host'],(isset($url['path']) ? $url['path'] : '/'));
   	if(!$pingClient->query('weblogUpdates.ping', $siteName, $postURL))
   	{
   		$error = TRUE;
   		postSendErrorEmail('Pingomatic', $pingClient->getErrorCode(), $pingClient->getErrorMessage());
   	}
}

if(!$error)
{
	echo 'Success post ping';
}

Вот и все. Как видно код слишком простой. Я сам его использую.

Если возникнут проблемы или вы думаете, что этот код ошибочный, то пишите коменты и мы обязательно разберемся с этим безобразием. Я думаю, что это всем будет полезно.

Прикрепленные файлы:

php_ixr_1.7.4.tar.gz


Место для вас

Добавить коментарий

кликните на картинку,
чтоб обновить код

Что за сайт

Этот сайт представляет унифицированную базу, где инфа собрана в единое целое, а не разбросанна по многочисленным сайтам, записям на листах бумаги или головам людей; а так же доступна круглосуточно не зависимо от кого-либо или чего-либо.

Будь в курсе

Интересненько

Вверх