Этот пример выделяет из файла robots.txt все страницы, запрещенные к индексации и заносит их в массив robots. Переданный url проверяется на соотвествие шаблону Disallow.
<?php
$r='http://htmlweb.ru/'; // домен для проверки
// читаю и разбираю robots.txt
$curl = curl_init($r.'robots.txt');
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1 ); // следовать любому "Location: " header
curl_setopt($curl, CURLOPT_TIMEOUT, 20); // максимальное время в секундах, для работы CURL-функций.
$res = curl_exec($curl);
if (!curl_error($curl)){
preg_match_all("/Disallow: (.*?)\s\n/imU", $res, $matches);
//print_r($matches);
$robots=$matches[1];
//print_r($robots);
echo "<h3>Страницы, запрещенные к индексации в Robots.txt</h3>";
foreach($robots as $item) echo "<br>\n".$item;
}
curl_close($curl);
?>Скопировать в буфер
Для проверки принадлежности конкретного URL шаблону, содержащемуся в секции Disallow файла robots.txt используйте следующий код:
<?php
//$site_short=substr($full_url, strlen($r)-1); // для проверки нужен относительный url начинающийся с '/'
if( in_array($site_short, $robots) || in_array(dirname($site_short).'/', $robots)) return true;
else return false;
?>Скопировать в буфер
Для облегчения и ускорения работы, реализованный здесь скрипт кеширует считанный robots.txt на 3 дня.
Этот упрощенный код проверки не учитывает расширенные возможности использования в robots.txt шаблонных символов '*' и '$'. Пример проверки вхождения URL в robots.txt с использованием регулярного выражения: здесь.
Всего за 50 рублей (~1$) Вы можете приобрести полный готовый пример разбора robots.txt. Код скрипта реализован на PHP, полностью открытый и не использует никаких дополнительных библиотек.
© Copyright 2008-2012 by KDG