|
|
|
| Вообщем есть масса сайтов участвующих в ссылко обмене.
Есть необходимость проверять сайты, не поставили ли они ссылки в теги noindex и ен поставили ли они атрибут ссылки rel="nofollow"
помогите с регуляркой и скриптом. | |
|
|
|
|
|
|
|
для: cernos
(19.05.2008 в 18:41)
| | Приведите пример как выглядит ссылка - адрес ссылки всегда известен? | |
|
|
|
|
|
|
|
для: cheops
(19.05.2008 в 20:32)
| | Адрес ссылки известен всегда, есть скажем сайт ***.ru
на его странице index.html должна находится ссылка на сайт 45**.ru вида <a href="http://45**.ru/forum/" title="45**.ru - юмор и развлечения">юмор и развлечения</a>
Вот необходимо скриптом проверить не находится ли ссылка:
<a href="http://45**.ru/forum/" title="45**.ru - юмор и развлечения">юмор и развлечения</a>
|
В тегах noindex и не присвоен ли её параметр rel=nofollow"
Т.е. ссылка на должна находится на странице ввиде:
<noindex> TEXT TEXT<a href="http://45**.ru/forum/" title="45**.ru - юмор и развлечения">юмор и развлечения</a> TEXT TEXT</noindex>
|
И не должна иметь параметр rel="nofollow", т.е.
TEXT TEXT<a rel="nofollow" href="http://45**.ru/forum/" title="45**.ru - юмор и развлечения">юмор и развлечения</a> TEXT TEXT
|
| |
|
|
|
|
|
|
|
для: cernos
(19.05.2008 в 23:53)
| | Первую задачу можно решить следующим образом
<?php
$str = 'Т.е. ссылка на должна находится на странице ввиде:
<noindex> TEXT TEXT<a href="http://45.ru/forum/" title="45**.ru
- юмор и развлечения">юмор и развлечения</a> TEXT TEXT</noindex>';
$url = "http://45.ru/forum/";
$pattern = "|<noindex>.+?<a[\s]+href=\"".preg_quote($url)."\"[^>]+>.+?</a>.+?</noindex>|is";
if(preg_match($pattern, $str, $out))
{
exit("Внимание: Обнаружена искомая ссылка, запрещённая к индексированию");
}
?>
|
| |
|
|
|
|
|
|
|
для: cernos
(19.05.2008 в 23:53)
| | Во втором случае можно отталкиваться от следующего скрипта
<?php
$str = 'И не должна иметь параметр rel="nofollow", т.е.
TEXT TEXT<a rel="nofollow" href="http://45.ru/forum/"
title="45**.ru - юмор и развлечения">юмор и развлечения</a> TEXT TEXT';
$url = "http://45.ru/forum/";
$pattern = "|<a[^>]+href=\"".preg_quote($url)."\"[^>]+>.+?</a>|is";
if(preg_match($pattern, $str, $out))
{
// Проверяем нет ли атрибута nofollow
if(strpos($out[0], "nofollow") !== false)
exit("Внимание: Обнаружена искомая ссылка, запрещённая к индексированию");
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(20.05.2008 в 11:03)
| | Большое спасибо Хеопс!
Объединил два кода в единое, может кому сразу пригодится готовое решение:
<?php
//Искомый URL страницы
$url = "http://45.ru/forum/";
//Текст в котором мы ищем ссылку
$str = 'Т.е. ссылка на должна находится на странице ввиде:<noindex> TEXT TEXT<a href="http://45.ru/forum/" title="45.ru - юмор и развлечения" rel="nofollow">юмор и развлечения</a> TEXT TEXT</noindex>';
$noindex_pattern = "|<noindex>.+?<a[\s]+href=\"".preg_quote($url)."\"[^>]+>.+?</a>.+?</noindex>|is";
$nofollow_pattern = "|<a[^>]+href=\"".preg_quote($url)."\"[^>]+>.+?</a>|is";
//Проверка на закл. в тегах noindex
if(preg_match($noindex_pattern, $str, $out))
{
$error .= "Недопустимая ссылка: ссылка находится в тегах noindex.\n";
}
//Проверка на атрибут nofollow
if(preg_match($nofollow_pattern, $str, $out))
{
// Проверяем нет ли атрибута nofollow
if(strpos($out[0], "nofollow") !== false)
$error .= "Недопустимая ссылка: ссылка имеет параметр rel=nofollow.\n";
}
//Если существует ошибка, выводим её
if($error) exit("<pre>".$error."</pre>");
?>
|
| |
|
|
|