функция рабочая 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>
чистый html быстрее отдается серверов т.к. нечего интерпретировать.
С целью оптимизации скорости (кэширование)- вполне достойное решение и давно применяется на тяжелых скриптах
Если это имел ввиду анализатор
<h1 id="logo"><a>Активный отдых на Урале</a></h1>
, то ничего страшного. Хотя есть мнение что лучше так не далать, а делать в чистом виде
<h1 id="logo">Активный отдых на Урале</h1>
типа как на укозе? так любая cms так или иначе решает вопросы
на текстовых файлах (Guppy CMS): ksweb.ru
похоже на самописанный движок
у Вас увели пароли ftp
Такое могут трояны делать если имя сервера, логин, пароль были прописаны в том же ТоталКомандер
1.Сменить пароли на доступ по ftp
2.Не хранить пароли на компьютере
пробовал, действительно тормозит, но пользоваться можно
это ифрейм-конструкция. у вас троян уволок пароли на фтп.
1. сменить пароль фтп
2. выправить скрипты
если вдруг iconv не работает на сервере то можно такую функцию применять
### функция конвертирования utf-8 ### function convert_utf_string($str,$type){ // w - encodes from UTF to win ; u - encodes from win to UTF static $conv=''; if(!is_array($conv)){ $conv=array(); for ($x=128;$x<=143; $x++){ $conv['utf'][]=chr(209).chr($x); $conv['win'][]=chr($x+112); } for ($x=144; $x<=191; $x++){ $conv['utf'][]=chr(208).chr($x); $conv['win'][]=chr($x+48); } $conv['utf'][]=chr(208).chr(129); $conv['win'][]=chr(168); $conv['utf'][]=chr(209).chr(145); $conv['win'][]=chr(184); } if ($type=='w'){ return str_replace($conv['utf'],$conv['win'],$str ); } elseif ($type=='u'){ return str_replace ($conv['win'],$conv['utf'],$str); } else { return $str; } } ###
За отзыв (скидка) потестить можно?