ObBot Wgent LiveTree Архив
Архив новостей  Архив публикаций  Разное 

BackLink Checker Script - Скрипт проверки ссылок


Страница:  1 2 3

Скрипт голосовалки
Скрипт телефонного справочника
О рейтингах
Туристическая палатка для жаркого климата
Скрипт бронирования мест для турагентств
Газета Наро-Фоминский Вестник о своём новом сайте
Скрипт транслитерации
Статья в газете Мой Город Обнинск

Не то чтобы я (вебмастер сайта) всерьёз озадачивался проблемами SEO для Wgent.com, но в ряде других проектов потребовался простенький скрипт, позволяющий проверить установку бэклинков. Это связано исключительно с тем, что многие копипастеры воруют c этих проектов новости и публикации, то есть, размещают у себя без установки гиперссылки на первоисточник.

То, что у меня получилось, наверно, нельзя назвать полноценным линкчекером. Это вспомогательный скрипт к роботу проверки плагиата. Он проверяет только наличие ссылки и незакрытость её от индексации, но не фактическую индексацию поисковиками. Существует множество способов мошенничества на этой почве, начиная от запрета на индексацию целых разделов сайта в robots.txt и заканчивая попаданием линкопомойки в блэк-листы поисковых роботов.

Но такой цели глобальной цели и не ставилось. Написанный скрипт - для простых и почти-совсем-честных вебмастеров личных домашних страничек, обменивающихся ссылками с такими же простыми и почти-совсем-честными интернетчиками  :-)

Скрипт выкладывается As Is, т.е., в том виде, в котором он был подключен к нашей CMS LiveTree. По вопросам адаптации скрипта под Ваш движок обращайтесь на форум. То же самое - насчёт использованных в скрипте функций из моей библиотеки, если испытываете затруднения в замене их своими.

 

LinkChecker Script Live Demo:

Содержит ли
cсылку на ?

<? /* file: script/linkchecker.php */

// Copyright © 2008 Max Brown ( www.Wgent.com ).

// Разрешается любое, в том числе коммерческое,
// использование при условии указания где-либо на Вашем сайте

// гиперссылки на любую страницу Wgent.com

require_once("core.php"); // Ядро CMS LiveTree.

// В данном скрипте оно практически не используется.
require_once("functions.php"); // Некоторые мои функции,

// легко заменяемые Вашими собственными.

// Комментарии к функциям, которые нужно заменить - в тексте.
function linkchecker() {
$ret="<form action=\"".getHref(param("id"))."\" method=\"post\">";
 $ret=$ret."Содержит ли <input type=\"text\" name=\"url\" value=\"".htmlspecialchars($url=param("url"))."\" /><br /> cсылку на <input type=\"text\" name=\"link\" value=\"".htmlspecialchars($link=param("link"))."\" />"; 

// Функция param("name") делает в точности то же, что и $_POST["name"],

// только её, в отличие от $_POST, не требуется объявлять глобальной.

// Мелочь, но приятно.  :-)  

$ret=$ret."<input type=\"submit\" />";  

$ret=$ret."</form>";  

if(!$url||!$link) return $ret;  

$is=ThisSiteHasHyperLinkToUs($url, array($link));

// Функция ThisSiteHasHyperLinkToUs описана ниже.
 if($is) $ret=$ret."<br />Yes!<br />"; else $ret=$ret."<br />No!<br />";
 return $ret;
} // function linkchecker()
$linkchecker=linkchecker();

function ThisSiteHasHyperLinkToUs( $page, $oursites=array("wgent.com", "obbot.com") ){

// Возвращает адрес стартовой сайта, если на указанной странице есть ссылка на перечисленные сайты
 if(  !($url=URLCorrect($page) )  ) {return false;} // Функция URLCorrect описана ниже
 if( !preg_match("/http\:\/\/([a-zA-Z0-9\_\-\.]+)\//Usi", $url, $mat) ) return false;
 $SiteRoot=$mat[1];
 $s=
implode("", file ($url)); // Скачиваем заданный URL
 // Проверяем на <meta name="robots" content="noindex, nofollow">
 if( preg_match_all("/<meta\s([^>]*)>/Usi", $s, $mat) ){
  $mat=$mat[0];
  foreach($mat as $meta){
if( preg_match("/(noindex|nofollow)/Usi", $meta) ) return false;
  } // foreach meta
 } // if есть тэги meta
 // Проверили на <meta name="robots" content="noindex, nofollow">
 $s=preg_replace("/<noindex.*>.*<\/noindex>/Usi", "", $s);  // Вырезали всё, что в тэге noindex
 $s=preg_replace("/<script.*>.*<\/script>/Usi", "", $s);  // Вырезали все JavaScript
 foreach($oursites as $oursite){
if( !preg_match_all("/<a\s[^>]*href\s*\=[\s\'\"]*http\:\/\/(www\.|)".preg_quote($oursite)."[^>]*>/Usi", $s, $mat) ) continue; // No link found...   

  $hlinks=$mat[0];   

  foreach ($hlinks as $hlink) if( !preg_match("/(noindex|nofollow)/Usi", $hlink) ) return true;  

 } //foreach $oursites
 return false;
} //function ThisSiteHasHyperLinkToUs($site)

function URLCorrect($addr){ // Возвращает корректный URL для произвольно набранного адреса
$addr=trim($addr); if(!$addr) return false;
if( strpos(strtoupper($addr), "HTTP://") === 0 ) $addr=substr($addr, 7); $addr="http://".$addr; // На случай www.address.ru без http://  

if( !strpos($addr, "/", 7) ) $addr=$addr."/"; // На случай http://www.address.ru вместо http://www.address.ru/somepage.html  

if( !preg_match("/http\:\/\/[a-zA-Z0-9\_\-\.]+\//Usi", $addr) ) return false; // До первого (добавленного?) слэша - только буквы, цифры и -_.
 return $addr;
} // function URLCorrect($addr)
?>


 
 
  W-gent and ObBot / Архив / Архив публикаций / Создание сайта©www.ObBot.com

Наш хостинг-провайдер