В интернете есть море списков с кучей RPC сервисов, но работают из них единицы. Методом долгих тестов и исключения были отобраны эти 4. Последний здесь для яндекса, не понятно работает он или нет, потому как сразу бот яндекса точно не приходит, но я всё же его использую, потому как других инструментов для rpc пинга в яндекс нет.
В общем, качаем тут: http://scripts.incutio.com/xmlrpc/ класс для работы с xml rpc, он вам понадобится для использования в следующем скрипте.
Набросал код для пинга страницы, у меня в цмс код работает со всеми сервисами и пингует что нужно автоматически, его тут выкладывать не к чему. Для примера дам следующий код, дописывайте и внедряйте как вам нужно.
$pingClient = new IXR_Client($url['host'],(isset($url['path']) ? $url['path'] : '/'));
if (!$pingClient->query('weblogUpdates.extendedPing', $siteName, $pageURL, '', $feedURL)) {
$pingClient = new IXR_Client($url['host'],(isset($url['path']) ? $url['path'] : '/'));
$pingClient->query('weblogUpdates.ping', $siteName, $pageURL);
}
Думаю тут всё вполне понятно. Три параметра - Тайтл/Страница/Сервис RPC
2. пинг сайтмапа:
Тут всё гораздо проще, нужно отправить запрос на определённую страницу гугла с параметром в качестве которого будет адресс сайтмапа на нашем домене.
Выбрать случайный элемент массива учитывая его "шансы" PHP
Функция рандомно выбирает из списка вариант, но при этом учитывает процентный шанс выпадения того или иного варианта. В функцию задаётся массив с нужными нам вариантами и их "шансами".
Функция для генерации уникального случайного числа PHP
Считается что rand и mt_rand имеют какую то зависимость при генерации случайного числа, вроде как следующий код исправляет эту проблему и генерирует действительно случайное число.
Преобразование объекта в массив на PHP PHP
Столкнулся с проблемой... оказалось не просто прогнать данные объекта через foreach. Потребовалось найти решение для преобразования объекта в обычный, многомерный массив.
Ловим ключевые слова по которым пользователи приходят из ПС Яндекс, Гугл, Майл, Рамблер. Код довольно посредственный, буду из него делать свой вариант, с защитой от xss и прочей херней. Пусть полежит тут...
Опять же сегодня, после переустановки сервера, на него встал PHP 5.3.3 и сразу же столкнулся с ошибкой в функции strftime()
Warning: strftime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Moscow' for 'MSK/4.0/no DST' instead in
Решение проблемы проще некуда, в основной файл ядра CMS добавил строчку:
@date_default_timezone_set('Europe/Moscow');
Если другими словами - просто добавляете строчку в начало вашего PHP скрипта.