Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

скрипт внутренней перелинковки


 Поделиться

Рекомендованные сообщения

Нашел в сети скрипт внутренней перелинковки написанный на php. Интересно стоит и его использовать, интересно ваше мнение: (код в конце под спойлером)

 

Описание: .........это простой php код, подключаемый на сайт посредством php include. Как утверждает автор -скрипт работает НЕ с базой данных, а с простыми файлами.

На входе программа получает 2 файла (которые необходимо создать и заполнить):

  • Список ключевых слов и релевантных им страниц
  • Околоссылочный текст для внутренней перелинковки

 

Схема работы:

  1. интегрируем в шаблон сайта, в любое удобное место php include с вызовом скрипта В примере указано — include («perelinkovka.php»); — что подразумевает,  что скрипт находится в корне сайта, если же вы установите его в другое место, то необходимо прописать полный адрес:<?php
    include («perelinkovka.php»);
    ?>
  2. Как только открывается страница, инициирующая его вызов — он отправляется в файл, содержащий список ключевых слов и релевантных страниц и выбирает случайное значение. Далее это значение сопоставляется с URL текущей страницы и если они совпадают — происходит новая выборка до тех пор, пока не будет получена ссылка, отличная от адреса текущей страницы.
  3. Далее он идет в следующий файл, содержащий околоссылочный текст и делает случайную выборку по нему.
  4. На выходе мы получаем ссылку, окруженную околоссылочным текстом (каждый раз новым), что отлично вписывается в концепцию правильной внутренней перелинковки
  5. Далее, записывается состояние страницы в отдельный файл, из которого оно будет браться при каждом новом открытии одной и той же страницы. Тоесть ссылка перелинковки, появившееся на странице однажды уже останется там и будет выдаваться при каждом новом открытии.

Для правильной работы модуля перелинковки, необходимо создать 2 файла (один, содержащий околоссылочный текст и один, содержащие ключевые слова и релевантные страницы). Файл с окружением создаем вручную, синтаксис следующий...." - текст до! текст после "

 

image.png.e267b4db7a0c918c83070136558c0326.png

 

Далее, необходимо создать файл, содержащий ключевые слова и релевантные стрраницы,  разделитель — «!». Здесь все предельно просто — открываем файл, который мы получили в конце прошлого этапа и удаляем лишние поля (частотность и позиция). Оставшиеся данные копируем и вставляем в блокнот:

 

image.png.a45b5c0638a0f2660429b38dcca24f74.png

 

 

Производим замену табуляций на разделитель, для этого, копируем табуляцию и  выбираем Правка -> Заменить. В поле «Что» вставляем скопированную  табуляцию, а в поле «Чем» вставляем «!» — нажимаем Заменить все. Называем данный файл links.txt

Далее, необходимо создать пустой файл visited.txt, куда программа перелинковки будет записывать состояния страниц (связь уже построенных перелинковок с URL-адресами вашего сайтта), в принципе, можно данный файл и не создавать — он будет создан автоматически при первом запуске скрипта, но если в директории, куда закачан скрипт не стоят права на запись — возникнет конфликт. Далее, файлу links необходимо дать права на запись. Если вы используете FileZilla, то нажимаем на файл правой кнопкой и в открывшемся меню выбираем пункт -> Права доступа к файлу:

Итак, далее нам необходимо закачать на сервер следующие файлы:

  • сам скрипт (perelinkovka.php)
  • файл с околоссылочным текстом (texts.txt)
  • файл с ключевыми словами (links.txt)
  • файл состояния страниц (visited.txt)

 

 

Спойлер

<?php

$link_count = 1;//Число линков на странице

$arkada_1 = random_values();
$arkada_2 = random_values();

while(($arkada_1['name']==$arkada_2['name'])||($arkada_1['link']==$arkada_2['link'])
     ||($arkada_1['before']==$arkada_2['before'])||($arkada_1['after']==$arkada_2['after'])
     ||(($arkada_1['before']==$arkada_2['before'])&&($arkada_1['before']!=flase))
     ||(($arkada_1['after']==$arkada_2['after'])&&($arkada_1['after']!=flase))){
    
    $arkada_2 = random_values();
}

if($link_count==1){
    print_result($arkada_1);    
}else{
    print_result($arkada_1,$arkada_2);    
}

function random_values(){
    $actual_link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    $file_array = file("links.txt");
    $arkada = false;
    while (!$arkada) {
        $arkada = $file_array[rand(0, count($file_array))-1];

        $pos = strrpos($arkada, "!");
        $link = substr($arkada,$pos+1);
        if(mb_strstr($link, substr($actual_link, 0,strlen($actual_link)-1))){
            $arkada = false;
        }
    }
    $pos = strrpos($arkada, "!");
    $name = substr($arkada, 0,$pos);
    $link = substr($arkada,$pos+1);

    $file_array = file("texts.txt");

    $arkada = false;
    while (!$arkada) {
        $arkada = $file_array[rand(0, count($file_array))-1];
    }
    $pos = strrpos($arkada, "!");
    $before = substr($arkada, 0,$pos);
    $after = substr($arkada,$pos+1);

    $arkada_array['name'] = $name;
    $arkada_array['link'] = $link;
    $arkada_array['before'] = $before;
    $arkada_array['after'] = $after;
    return $arkada_array;
}

function print_result($arkada_1,$arkada_2=false){
    $actual_link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    $str = $actual_link."!!!".$arkada_1['name']."!!!".$arkada_1['link']."!!!".$arkada_1['before']."!!!".$arkada_1['after']."!!!".$arkada_2['name']."!!!".$arkada_2['link']."!!!".$arkada_2['before']."!!!".$arkada_2['after'];

    $order   = array("\r\n", "\n", "\r");
    $replace = ' ';

    // Обрабатывает сначала \r\n для избежания их повторной замены.
    $newstr = str_replace($order, $replace, $str);

    $fp = fopen("visited.txt", "r"); // Открываем файл в режиме чтения
    if ($fp)
    {
    $visit = false;
    $html = false;
    while (!feof($fp))
    {
    $mytext = fgets($fp, 999);
    //echo $mytext."<br>";
    $needle = "!!!";
    $new_position = strpos($mytext, $needle,0);
    
    $link_x    = substr($mytext,0,$new_position);
    $visit = mb_strstr ($link_x, $actual_link);
    if($visit){$html = $mytext;}
    }
    }
    
    
    
    if(!$html){
        $fp = fopen("visited.txt", "a"); // Открываем файл в режиме записи
        fwrite($fp, $newstr."\r\n"); // Запись в файл
        echo $arkada_1['before']." <a href='".$arkada_1['link']."'>".$arkada_1['name']."</a> ".$arkada_1['after'].'<br/>';
        echo $arkada_2['before']." <a href='".$arkada_2['link']."'>".$arkada_2['name']."</a> ".$arkada_2['after'].'<br/>';
    }else{    
        $needle = "!!!";
        $lastPos = 0;
        $positions = array();

        while (($lastPos = strpos($html, $needle, $lastPos))!== false) {
            $positions[] = $lastPos;
            $lastPos = $lastPos + strlen($needle);
        }
        $name_1    = substr($html,$positions[0]+3,$positions[1]-$positions[0]-3);
        $link_1    = substr($html,$positions[1]+3,$positions[2]-$positions[1]-3);
        $before_1  = substr($html,$positions[2]+3,$positions[3]-$positions[2]-3);
        $after_1   = substr($html,$positions[3]+3,$positions[4]-$positions[3]-3);
        
        $name_2    = substr($html,$positions[4]+3,$positions[5]-$positions[4]-3);
        $link_2    = substr($html,$positions[5]+3,$positions[6]-$positions[5]-3);
        $before_2  = substr($html,$positions[6]+3,$positions[7]-$positions[6]-3);
        $after_2   = substr($html,$positions[7]+3);

        echo $before_1." <a href='".$link_1."'>".$name_1."</a> ".$after_1.'<br/>';
        echo $before_2." <a href='".$link_2."'>".$name_2."</a> ".$after_2.'<br/>';
        
    }    
}
?>

 

 

Изменено пользователем Гость
Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.