Проверка запрета индексации в метатегах
Сегодня решил дописать свой скрипт для чеканья Дженах, добавив к нему еще и проверку на запрет индексации в мета тегах. Как известно при закрытии индексации прописывают что-то вроде этого
<meta name=»robots» content=»noindex,follow» />
в принципе в проверке ничего сложного нет пишем регулярку для проверки наличия на странице этого тега и вуаля
preg_match(‘/<meta.*?(noindex.*?)/>/’,$content,$meta);
проверяем есть что в результате в переменной $meta[0] и определяемся закрыта страница от индексации или нет. Сам скрипт целиком такой
function get_web_page( $url )
{
$uagent = «Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8″;$ch = curl_init( $url );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // возвращает веб-страницу
curl_setopt($ch, CURLOPT_REFERER,»http://google.com»);
curl_setopt($ch, CURLOPT_HEADER, 0); // не возвращает заголовки
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // переходит по редиректам
curl_setopt($ch, CURLOPT_ENCODING, «»); // обрабатывает все кодировки
curl_setopt($ch, CURLOPT_USERAGENT, $uagent); // useragent
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120); // таймаут соединения
curl_setopt($ch, CURLOPT_TIMEOUT, 120); // таймаут ответа
curl_setopt($ch, CURLOPT_MAXREDIRS, 10); // останавливаться после 10-ого редиректа$content = curl_exec( $ch );
$err = curl_errno( $ch );
$errmsg = curl_error( $ch );
$header = curl_getinfo( $ch );
curl_close( $ch );$header['errno'] = $err;
$header['errmsg'] = $errmsg;
$header['content'] = $content;
return $header;
}$url1 = ‘http://phphub.ru/tag/skript-dlya-peremeshivaniya-php/’;
$result=get_web_page( $url1 );//print_r($result);
$content = $result['content'];
//echo $content; <meta name=»robots» content=»noindex,follow» />preg_match(‘/<meta.*?(noindex.*?)/>/’,$content,$meta);
//print_r($meta);
if(isset($meta[0][0])) echo ‘закрыто от индексации в мета тегах’;