Скрипт верификации сайта
Приветствую!
Предлагаю на обсуждения простой скрипт проверки принадлежности (верификации) сайта, его владельцу.
Предполагается, что владелец сайта поместил специальный meta тег в head секцию на корневой странице сайта, т.е. на home page.
Формат meta тега следующий:
<meta name="vf_key" content="29693426cfd334d8287783b49217e64f"/>
Задача определить наличие заданного meta тэга в заголовке документа, исключая весь остальной документ.
Функция верификации следующая:
PHP:
-
/**
-
* Function return true if verfication is successed
-
*@param $url string - it is valid url address
-
*@param $metaValue - string it is special code which placed as content for verification meta tag
-
**/
-
public function verifyMetaTag($url, $metaValue)
-
{
-
// we know what $url is valid url
-
-
//get html of the page with Zend http client
-
'maxredirects' => 0,
-
'timeout' => 30)
-
);
-
$response = $client->request();
-
if (!$response){
-
return false;
-
}
-
-
$html = $response->getBody();
-
-
-
//close head section must be below our meta tag
-
if ($metaPos> $headPos){
-
return false;
-
}
-
-
-
//grab all meta tags in head section into array
-
-
//checking all meta tags on special key and value pairs
-
foreach ($matches[1] as $meta){
-
//meta tag must have key "vf_key" and value "$metaValue"
-
return true;
-
}
-
}
-
return false;
-
}
Есть ли у этого метода недостатки или может есть более простой вариант?


see: http://www.php.net/manual/en/function.get-meta-tags.php
Хм, можеь лучше использовать встроенные возможности самого языка програмирования
http://ua.php.net/manual/ru/function.get-meta-tags.php
var_dump(get_meta_tags("http://yandex.ru"));
Ну якщо вже Zend юзається, то там є Zend_Dom для таких розваг.
Спасибо за get_meta_tags(), век живи, век учись. :)
А с Zend Dom я уже наигрался, либо он с head секцией не работает, либо он еще не стабилен.
Пробовал следующими способами:
//Объявление
$dom = new Zend_Dom_Query($html);
//запросы
* $dom->query('head meta');
* $dom->query('head');
* $dom->query('html head');
Любой из запросов всегда возвращал пустой ответ.
Также пробовал запросы в стиле XPath, результат тот же.
Потому что HTML код скорее всего не валидный. Для начала его следует пропустить через tidy
http://us3.php.net/manual/en/book.tidy.php
Necromant,
поздравляю с ZCE, кстати я раньше тоже хотел сдать экзамен, но все время забрасывал. Сейчас, все таки решился дойти до конца и получить ZCE. ;-)
Спасибо за подсказку с tidy.
Надо будет попробовать решение с Dom.
Хотя get_meta_tags здесь подойдет лучше.
Yaroslav Vorozhko,
Спасибо. Я тоже забрасывал 2 года все собирался сдать, наконец-то в этом году сдал. Вообще имхо экзамен по php5 дааавно устарел и абсолютно не интересен. Вот что по настоящему интерессно это экзамен ZCE ZF.
На самом деле сдавать не так страшно как кажется.