Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

Нашел в сети скрипт внутренней перелинковки написанный на 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/>';
        
    }    
}
?>

 

 

Змінено користувачем Гість
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.