Скрипт вывода случайной ссылки из Sitemap
17 марта 2012 в 0:11 в категории Статьи о php 0 комментариевДоброго времени суток, уважаемые читатели!
Не помню откуда, и почему, поправьте, если я не прав, но в памяти у меня отложилась следующая информация: для СЕО (SEO) раскрутки сайта выгодно, когда на твой сайт ссылаются другие сайты (это понятно и ежу), но еще выгодней, если не только на главную страницу сайта а и на страницы второ уровня и «глубже».
В связи с этим родилась идея написать небольшой скрипт для генерации случайных ссылок из файла sitemap.xml для последующего использования на сторонних сайтах.
Вот собственно код, который у меня получился. Возможно, есть способ сделать все намного проще, но это пока то, до чего я сам дошел. Если у вас есть какие-то идеи — пишите в комментариях, всегда буду рад, прочесть полезный совет.
<?php $sitemap = file_get_contents('http://your.domen.com/sitemap.xml'); // получаем весь файл preg_match_all('/http:\/\/[a-z0-9-\.\/\%]+/',$sitemap,$urls); // получаем все ссылки $selected = $urls[0][rand(7,count($urls[0]))]; // выбираем одну из НАШИХ ССЫЛОК и сохраняем ее в переменную (выбор идет начиная с 7 ссылки и заканчивая общим количеством). Сделано так, потому что первые 7 - ссылки типо sitemap.org $content = file_get_contents($selected); // Получаем заголовок страницы, куда ссылается ссылка preg_match_all('#<title>.+</title>#', $content, $matches); // ищем title $title = preg_replace('#(<title>|</title>)#', '', $matches[0][0]); // получаем заголовок $title = preg_replace('#(«)#', '-', $title); // заменяем стрелки на прочерки - для моего сайта, для себя можете убрать $title = preg_split('/ - /', $title, -1, PREG_SPLIT_OFFSET_CAPTURE); // делим сроку на разделы по прочеркам - так же для моего сайта можете убрать echo '<a href='.$selected.'>'.$title[0][0].' - '.$title[1][0].'</a>'; // выводим ссылку на страницу с назваием + название раздела ?>