Ребята, поделитесь куском кода проверки обратной ссылки

M
На сайте с 20.08.2004
Offline
376
1076

Ребята, поделитесь куском кода проверки обратной ссылки c учетом всего что стоит учесть.

Не хочу изобретать велосипед, хоть и начал все же программить вдруг никто не откликнется. :)

Спасибо.

отец сыночка, лапочки дочки и еще одного сыночка
psylosss
На сайте с 23.12.2005
Offline
126
#1

Вообще, я так понимаю, что качественные куски этого кода - это ноу-хау. В том числе и список того, что надо учесть. Примитивные проверки, конечно, могут и выложить, но я бы наверное вложился временем/деньгами в самостоятельное написание этой фичи.

Веб-разработка. Сложные проекты. Проектирование. Проект-менеджмент. Стартапы.
Turtle_Fly
На сайте с 20.09.2007
Offline
33
#2

http://www.htmlweb.ru/php/example/preg.php

там посмотрите Парсер всех внешних и внутренних ссылок со страницы

доработайте по вкусу =)

лазерные станки для резки и гравировки, купить в Москве (http://laser911.ru/). изготовление табличек для офиса (http://www.shtampuem.ru/tablichki/).
M
На сайте с 20.08.2004
Offline
376
#3

А что тут такого ноухау.

Одна функция проверяет на внешние ссылки, колво и с учетом комментов и скриптов.

Вторая функция анализирует роботс

И тд.

Turtle_Fly, спасибо. Есть что интересное.

Могу выложить свой кусок кода который успел наваять если кому-то надо :)

zhidronsss
На сайте с 12.10.2007
Offline
36
#4

функция рабочая get_file, остальное набросал в общих чертах. но должно работать- не испытывал

<?
$link="<a href=http://www.fuck.fu>Моя ссылка</a>";//текст вашего линка
$adres_proverki="http://www.tamgdessylko.ru/wah/coordinat.html";//адрес с ссылкой

//получение адреса robots.txt
$adres_proverki_parse=parse_url($adres_proverki);
$adres_proverki_robots_txt=@$adres_proverki_parse[scheme]."://".@$adres_proverki_parse[host]."/robots.txt";//адрес robots.txt
$robots_content=get_file($adres_proverki_robots_txt, "http://google.com");//дальше надо разобрать содержимое robots
// дальше обработка robots.txt
//...............
//...............тут обрабатывем содержимое роботс, хз какая логика
//...............


$page_content=get_file($adres_proverki, "http://google.com");
//дальше анализируем содержимое страницы

//условие 1 -NOINDEX+ тело script
//выстрегаем всё от <noindex> до </noindex>
$page_content=preg_replace("/<noindex>(*.?)<\/noindex>/is", "", $page_content);

//скрипты прирежем- могут и там запихнуть ссылку
$page_content=preg_replace("/<script[^>]*?[>].*?</script>/is", "", $page_content);



//условие 2- количество внешних ссылок
preg_match_all("#<a[\s].*?href[\s]*=[\s]*\\\?\"?'?(.*?)\\\?[\"'\s>]#is",$page_content,$href_array);
$external_link_count=count($href_array[1]);//количество внешних ссылок



$link_input_count = substr_count($page_content,$link);//можно так - количество вхождений вашей сслки в тексте страницы


//////////////////////////////////////////////////////////////вывод результата///////////////////////////////
if($link_input_count==1)
{
echo "ССЫЛКА НА МЕСТЕ!!!"; echo "Всего внешних".$external_link_count;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////



function get_file($url, $url_ref)
{
global $header, $user_agent, $cookie_file;
$process = curl_init($url);
curl_setopt($process, CURLOPT_HTTPHEADER, $header);
curl_setopt($process, CURLOPT_HEADER, 1);
curl_setopt($process, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
curl_setopt ($process, CURLOPT_REFERER , $url_ref);
curl_setopt($process, CURLOPT_RETURNTRANSFER, 1);
$return = curl_exec($process);
curl_close($process);
return $return;
}

?>

логгика такая:

1. по адресу где находится ваша ссылка восстанавливаем путь до robots.txt

2. скачиваем роботс

3. анализируем роботс (не писал как- сами

4. скачиваем содержимое страницы

5. вырезаем то что (возможно) наход. между ноидекс+ скрипты

6. считаем внешние ссылки (если надо)

7. ищем свою ссылку

п.с. (пришла мысля что и там могут разместить) можно сразу вырезать то что идет до <body> и после </body>

M
На сайте с 20.08.2004
Offline
376
#5

Спасибо. Так же где-то и у меня только я еще учитываю вот это

$s = preg_replace ("/.*<body>/si", "", $s);

$s = preg_replace ("/<\/body>.*/si", "", $s);

Miracle добавил 18.12.2008 в 23:53

Кстати, с роботс тоже не доконца продумал что делать. Да и думается мне еще есть тонкости, а тут только то что я описал в требованиях :), кстати, ссылка может быть в комментах <!-- -->

zhidronsss
На сайте с 12.10.2007
Offline
36
#6

точно

еще можно внутрь тага запихнуть

<img src='xml.gif' alt='<a href="index.php">sdd</a>'>

мож. кому тему попалил? ;)

zhidronsss добавил 19.12.2008 в 00:27

вдогонку и сегодня напоследок:

<textarea>(.*?)</textarea>

M
На сайте с 20.08.2004
Offline
376
#7

Вот я и говорю, может кто поделится "куском" что бы не придумывать и не додумывать свой велосипед :)

$0
На сайте с 11.12.2008
Offline
5
#8

вчера кидал на Perl, если интересно - поищите где-то в соседней теме лежит

Я выбираю - pershost.ru
zhidronsss
На сайте с 12.10.2007
Offline
36
#9

$p01nt, ты про это /ru/forum/297482 ?

еслли да ,то не смеши людей

M
На сайте с 20.08.2004
Offline
376
#10
$p01nt:
вчера кидал на Perl, если интересно - поищите где-то в соседней теме лежит

Спасибо., но вынаверное не уловили доконца сути вопроса. Интересуют именно тонкости.

Минусователю анонимному как всегда в одно место флажек :), если задание для студента пусть естли не выложит код то хоть расскажет о тонкостях которые могут быть.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий