внешние ссылки

Serg.Chupak
На сайте с 14.10.2008
Offline
77
622

Поделитесь кто-нибудь функцией которая смотрит количество внешних ссылок на странице. Чтобы отслеживало ссылки с nofollow и noindex. Наверняка есть уже готовое решение

[Удален]
#1

Serg.Chupak, есть. 500$

B
На сайте с 15.08.2009
Offline
79
#2
Serg.Chupak:
Поделитесь кто-нибудь функцией которая смотрит количество внешних ссылок на странице. Чтобы отслеживало ссылки с nofollow и noindex. Наверняка есть уже готовое решение

проверить можно тут http://linkclub.ru/obratnaja_ssilka.php

Serg.Chupak
На сайте с 14.10.2008
Offline
77
#3
bearman:
Serg.Chupak, есть. 500$

😂

а не много ли?

Serg.Chupak
На сайте с 14.10.2008
Offline
77
#4

Я не такой жадный, поэтому выкладываю готовое решение

function check_outlinks($page)

{
$content_page = file_get_contents($page) or die ("<font color=red>&#206;&#248;&#232;&#225;&#234;&#224; &#231;&#224;&#239;&#240;&#238;&#241;&#224; &#241;&#242;&#240;&#224;&#237;&#232;&#246;&#251;!</font>");
$content_page = preg_replace("!<NOINDEX>!i", "<noindex>", $content_page);
$content_page = preg_replace("!</NOINDEX>!i", "</noindex>", $content_page);

if (preg_match_all("!<noindex>!Ui", $content_page, $noindex_count))
{
preg_match_all("!</noindex>!Ui", $content_page, $noindexe_count);
$full_count = count($noindex_count[0]) + count($noindexe_count[0]) + 1;
//if (!is_float($full_count/2)) echo "<font color=red>&#209;&#243;&#249;&#229;&#241;&#242;&#226;&#243;&#254;&#242; &#238;&#228;&#232;&#237;&#238;&#247;&#237;&#251;&#229; &#242;&#253;&#227;&#232; <noindex>, &#226;&#238;&#231;&#236;&#238;&#230;&#237;&#224; &#237;&#229;&#234;&#238;&#240;&#240;&#229;&#234;&#242;&#237;&#224;&#255; &#240;&#224;&#225;&#238;&#242;&#224;!</font><br><br>";

$noindex = 0;
$n_out = 0;
for ($i=0; $i<$full_count; $i++)
{
$pozition_begin = strpos($content_page, "<noindex>");
$pozition_end = strpos($content_page, "</noindex>");
if ($pozition_end == true && $pozition_begin == true && $pozition_begin < $pozition_end)
{
$content_parts[] = array(substr($content_page, 0, $pozition_begin), $noindex);
$noindex = 1;
$pozition_default = $pozition_begin+9;
$content_page = substr($content_page, $pozition_default);
$n_out++;
}
elseif (($pozition_end == true && $pozition_begin == true && $pozition_end < $pozition_begin) || ($pozition_end == true && $pozition_begin == false))
{
$content_parts[] = array(substr($content_page, 0, $pozition_end), $noindex);
if (--$n_out == 0) $noindex = 0;
$pozition_default = $pozition_end+10;
$content_page = substr($content_page, $pozition_default);
}
elseif ($pozition_end == false && $pozition_begin == false)
{
$content_parts[] = array($content_page, $noindex);
}
}
}
else
$content_parts[] = array($content_page);

$url_real_edit = preg_replace("!http://|https://|www\.!Ui", "", $page);
if (strpos($url_real_edit, "/") == true) $url_real_edit = substr($url_real_edit, 0, strpos($url_real_edit, "/"));

for ($i=0; $i<count($content_parts); $i++)
{
preg_match_all("!<a[^>]+href\s*=\s*[\"']?([^\"']+)[\"']?[^>]*>(.+?)</a>!i", $content_parts[$i][0], $links);
for ($r=0; $r<count($links[0]); $r++)
{
if (preg_match("!^(?:http://|https://)(?:www\.|)(.*)$!i", $links[1][$r], $url_parts))
{
if (preg_match('!^' . $url_real_edit . '!i', $url_parts[1])) continue;
// &#206;&#239;&#240;&#229;&#228;&#229;&#235;&#229;&#255;&#229;&#236; &#241;&#241;&#251;&#235;&#234;&#243; &#232; &#224;&#237;&#234;&#238;&#240;
$link = trim($url_parts[0]);
$ankor = $links[2][$r];

// &#197;&#241;&#235;&#232; &#234;&#224;&#240;&#242;&#232;&#237;&#234;&#224;
if (preg_match ("!<img[^>]+src=[\"']?([^\"']+)[\"']?[^>]*>!i", $links[2][$r], $image_parts))
$ankor = $image_parts[1];

// &#196;&#238;&#225;&#224;&#226;&#235;&#255;&#229;&#236; &#241;&#241;&#251;&#235;&#234;&#243; &#226; &#238;&#241;&#237;&#238;&#226;&#237;&#238;&#233; &#236;&#224;&#241;&#241;&#232;&#226; &#232;&#241;&#245;&#238;&#228;&#255;&#249;&#232;&#245; &#241;&#241;&#251;&#235;&#238;&#234;
$result['out'][] = Array($link, $ankor);

// &#196;&#238;&#225;&#224;&#226;&#235;&#255;&#229;&#236; &#241;&#241;&#251;&#235;&#234;&#243; &#226; &#236;&#224;&#241;&#241;&#232;&#226; nofollow
if (preg_match("![\"'\s=]nofollow[\"'\s>]!Ui", $links[0][$r]))
$result['nofollow'][] = Array($link, $ankor);

// &#196;&#238;&#225;&#224;&#226;&#235;&#255;&#229;&#236; &#241;&#241;&#251;&#235;&#234;&#243; &#226; &#236;&#224;&#241;&#241;&#232;&#226; noindex
if ($content_parts[$i][1] == 1)
$result['noindex'][] = Array($link, $ankor);
}
}
}
return $result;
}

if ($_POST['submit'] && $_POST['url_path'] != "")
print_r (check_outlinks($_POST['url_path']));
DV
На сайте с 01.05.2010
Offline
644
#5

Так понятнее...

function check_outlinks($page)

{
$content_page = file_get_contents($page) or die ("Ошибка запроса страницы!");
$content_page = preg_replace("!!i", "", $content_page);
$content_page = preg_replace("!!i", "", $content_page);

if (preg_match_all("!!Ui", $content_page, $noindex_count))
{
preg_match_all("!!Ui", $content_page, $noindexe_count);
$full_count = count($noindex_count[0]) + count($noindexe_count[0]) + 1;
//if (!is_float($full_count/2)) echo "Существуют одиночные тэги , возможна некорректная работа!";

$noindex = 0;
$n_out = 0;
for ($i=0; $i<$full_count; $i++)
{
$pozition_begin = strpos($content_page, "");
$pozition_end = strpos($content_page, "");
if ($pozition_end == true && $pozition_begin == true && $pozition_begin < $pozition_end)
{
$content_parts[] = array(substr($content_page, 0, $pozition_begin), $noindex);
$noindex = 1;
$pozition_default = $pozition_begin+9;
$content_page = substr($content_page, $pozition_default);
$n_out++;
}
elseif (($pozition_end == true && $pozition_begin == true && $pozition_end < $pozition_begin) || ($pozition_end == true && $pozition_begin == false))
{
$content_parts[] = array(substr($content_page, 0, $pozition_end), $noindex);
if (--$n_out == 0) $noindex = 0;
$pozition_default = $pozition_end+10;
$content_page = substr($content_page, $pozition_default);
}
elseif ($pozition_end == false && $pozition_begin == false)
{
$content_parts[] = array($content_page, $noindex);
}
}
}
else
$content_parts[] = array($content_page);

$url_real_edit = preg_replace("!http://|https://|www\.!Ui", "", $page);
if (strpos($url_real_edit, "/") == true) $url_real_edit = substr($url_real_edit, 0, strpos($url_real_edit, "/"));

for ($i=0; $i<count($content_parts); $i++)
{
preg_match_all("!]+href\s*=\s*[\"']?([^\"']+)[\"']?[^>]*>(.+?)!i", $content_parts[$i][0], $links);
for ($r=0; $r<count($links[0]); $r++)
{
if (preg_match("!^(?:http://|https://)(?:www\.|)(.*)$!i", $links[1][$r], $url_parts))
{
if (preg_match('!^' . $url_real_edit . '!i', $url_parts[1])) continue;
// Определеяем ссылку и анкор
$link = trim($url_parts[0]);
$ankor = $links[2][$r];

// Если картинка
if (preg_match ("!]+src=[\"']?([^\"']+)[\"']?[^>]*>!i", $links[2][$r], $image_parts))
$ankor = $image_parts[1];

// Добавляем ссылку в основной массив исходящих ссылок
$result['out'][] = Array($link, $ankor);

// Добавляем ссылку в массив nofollow
if (preg_match("![\"'\s=]nofollow[\"'\s>]!Ui", $links[0][$r]))
$result['nofollow'][] = Array($link, $ankor);

// Добавляем ссылку в массив noindex
if ($content_parts[$i][1] == 1)
$result['noindex'][] = Array($link, $ankor);
}
}
}
return $result;
}

if ($_POST['submit'] && $_POST['url_path'] != "")
print_r (check_outlinks($_POST['url_path']));
VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )

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