Проверка вхождения в robots.txt на php.

В предыдущем примере robots_txt_razbor.php описано, как разобрать robots.txt и проверить на запрет URL для индексации. В этом примере я покажу, как с использованием регулярного выражения определить, запрещен ли переданный URL для индексации в robots.txt или нет.

$root='http://htmlweb.ru/';
$res=file_get_contents($root.'robots.txt');
preg_match_all("/Disallow: (.*?)\s\n/imU", $res, $matches);
$robots=$matches[1];

// функция проверки запрета индексации переданного URL
// Возвращает true, если переданный URL запрещен к индексации
function is_robots($f){
global $robots, $root;
   $f=substr($f, strlen($root)-1); // эта строка удалает домен из переданного URL
   // цикл по всем строкам Disallow
   foreach($robots as $item) {
    $item=str_replace('*','.*',str_replace('+','\+',str_replace('.','\.',$item)));
    if(preg_match('/^'.$item.'/',$f))return true; // $-привязка к концу сработает автоматически
   }
   return false;
}

Смотрите также:


.