Перейти к содержанию

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

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

 

 

Изменено пользователем Techno1og

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От smartcoder
      2 000.00 руб
      Скачать/Купить дополнение


      CronSuppler - запуск по крону модуля "Поставщики" по Cron
      Дополнение к модулю товарища @usergio  - Автоматический обработка прайс-листов по Cron
      Многие хотели полностью автоматизировать процесс, теперь это возможно.
       
      Дополнение позволяет осуществлять запуск по Cron поставщиков модуля Автоматическая обработка прайс листов.
       
      Возможности дополнения:
      1. Запуск файла из папки admin/upload/
      2. Парсинг сайтов по расписанию
      3. Обновление остатков товаров по расписанию
      4. Обновление цен товаров по расписанию
       
       
      Установка:
      Установка для версии Opencart 1.5
      1. Загружаем файлы на сервер из папки /upload
      2. Появилась команда для Cron в списке поставщиков.
      3. Копируем команду из списка поставщиков
      4. Заходим в панель хостинга и ищем раздел Планировщик / Планировщик Cron / Планирование
      5. Далее вносим команды в планировщик и указываем необходимые интервалы запуска.
      Установка для версии Opencart 2.0-2.3
      1. Устанавливаем модуль через модификаторы
      2. Обновляем модификаторы
      3. Появилась команда для Cron в списке поставщиков.
      4. Копируем команду из списка поставщиков
      5. Заходим в панель хостинга и ищем раздел Планировщик / Планировщик Cron / Планирование
      6. Далее вносим команды в планировщик и указываем необходимые интервалы запуска.
      Установка для версии Opencart 3
      1. Устанавливаем модификацию через модификаторы
      2. Загружаем файлы на сервер из папки /upload
      3. Обновляем модификаторы
      4. Появилась команда для Cron в списке поставщиков.
      5. Копируем команду из списка поставщиков
      6. Заходим в панель хостинга и ищем раздел Планировщик / Планировщик Cron / Планирование
      7. Далее вносим команды в планировщик и указываем необходимые интервалы запуска.
       
      Описание команд для планировщика
      --form 63 - запуск формы поставщика 63 в модуле Автоматическая обработка прайс листов
      --like 50 - обнуление количества товара с окончанием модели (model -50)
       
      Если вы хотите обнулять товар перед каждым запуском:
      - используйте --like (+номер модели товара с содержанием кода поставщика)
       
      Для парсинга, обновления цен без остатков: используйте просто --form 63, без --like (в этом случае form - номер формы поставщика, 63.csv либо 63.xml в данном случае)
       
      Вкладка "Инструменты" - к форме поставщика не относится и с CronSuppler не работает.
       
       
       
      Важно:
      CronSuppler - это дополнение к модулю Автоматическая обработка прайс листов, работает только при наличии модуля Автоматическая обработка прайс листов
       
      Видеообзор:
       
       
       
      Дополнительный модуль, вам пригодится:
       
      SupplerMailLink - Автоматическое скачивание прайс-листов с почты или по ссылке поставщика
      Пользуйтесь дополнительным модулем, для обновления, добавления и парсинга прайс-листов по расписанию.
       
      Отличия SupplerMailLink и CronSuppler
      SupplerMailLink - загрузка прайс-листов на сервер
      CronSuppler - выполнение формы модуля АОП в автоматическом режиме по расписанию (cron)
       
      Возможности SupplerMailLink
      1. Загрузка файла по ссылке в папку admin/upload/
      2. Загрузка файла по почте (через подключение к IMAP) в папку admin/upload/
      3. Планирование загрузки в любое время (раз в минуту, раз в час, или когда захотите)
      4. Поддержка форматов XLS, XLSx, csv, xml
      5. Конвертация в нужный формат для модуля поставщики в XML или CSV
       
       
      Добавил smartcoder Добавлено 22.02.2018 Категория Обмен данными Системные требования vqmod для oc_1.5 Сайт разработчика https://smart-coder.ru Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.5.1
      1.5.5
      1.5.4.1
      1.5.3.1 ocStore 3.0
      2.3
      2.2
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1
      1.5.2.1
      1.5.1.3 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х
      OcShop 1.5.6.4.х  
    • От smartcoder
      Дополнение к модулю товарища @usergio  - Автоматический обработка прайс-листов по Cron
      Многие хотели полностью автоматизировать процесс, теперь это возможно.
       
      Дополнение позволяет осуществлять запуск по Cron поставщиков модуля Автоматическая обработка прайс листов.
       
      Возможности дополнения:
      1. Запуск файла из папки admin/upload/
      2. Парсинг сайтов по расписанию
      3. Обновление остатков товаров по расписанию
      4. Обновление цен товаров по расписанию
       
       
      Установка:
      Установка для версии Opencart 1.5
      1. Загружаем файлы на сервер из папки /upload
      2. Появилась команда для Cron в списке поставщиков.
      3. Копируем команду из списка поставщиков
      4. Заходим в панель хостинга и ищем раздел Планировщик / Планировщик Cron / Планирование
      5. Далее вносим команды в планировщик и указываем необходимые интервалы запуска.
      Установка для версии Opencart 2.0-2.3
      1. Устанавливаем модуль через модификаторы
      2. Обновляем модификаторы
      3. Появилась команда для Cron в списке поставщиков.
      4. Копируем команду из списка поставщиков
      5. Заходим в панель хостинга и ищем раздел Планировщик / Планировщик Cron / Планирование
      6. Далее вносим команды в планировщик и указываем необходимые интервалы запуска.
      Установка для версии Opencart 3
      1. Устанавливаем модификацию через модификаторы
      2. Загружаем файлы на сервер из папки /upload
      3. Обновляем модификаторы
      4. Появилась команда для Cron в списке поставщиков.
      5. Копируем команду из списка поставщиков
      6. Заходим в панель хостинга и ищем раздел Планировщик / Планировщик Cron / Планирование
      7. Далее вносим команды в планировщик и указываем необходимые интервалы запуска.
       
      Описание команд для планировщика
      --form 63 - запуск формы поставщика 63 в модуле Автоматическая обработка прайс листов
      --like 50 - обнуление количества товара с окончанием модели (model -50)
       
      Если вы хотите обнулять товар перед каждым запуском:
      - используйте --like (+номер модели товара с содержанием кода поставщика)
       
      Для парсинга, обновления цен без остатков: используйте просто --form 63, без --like (в этом случае form - номер формы поставщика, 63.csv либо 63.xml в данном случае)
       
      Вкладка "Инструменты" - к форме поставщика не относится и с CronSuppler не работает.
       
       
       
      Важно:
      CronSuppler - это дополнение к модулю Автоматическая обработка прайс листов, работает только при наличии модуля Автоматическая обработка прайс листов
       
      Видеообзор:
       
       
       
      Дополнительный модуль, вам пригодится:
       
      SupplerMailLink - Автоматическое скачивание прайс-листов с почты или по ссылке поставщика
      Пользуйтесь дополнительным модулем, для обновления, добавления и парсинга прайс-листов по расписанию.
       
      Отличия SupplerMailLink и CronSuppler
      SupplerMailLink - загрузка прайс-листов на сервер
      CronSuppler - выполнение формы модуля АОП в автоматическом режиме по расписанию (cron)
       
      Возможности SupplerMailLink
      1. Загрузка файла по ссылке в папку admin/upload/
      2. Загрузка файла по почте (через подключение к IMAP) в папку admin/upload/
      3. Планирование загрузки в любое время (раз в минуту, раз в час, или когда захотите)
      4. Поддержка форматов XLS, XLSx, csv, xml
      5. Конвертация в нужный формат для модуля поставщики в XML или CSV
       
       
    • От ruslun
      Итак, есть сайт-донор на opencart 1.5 и основной сайт на ocstore 2.3 , требуется на основном сайте настроить обновление товаров как на сайте доноре в автоматическом режиме, нужны модули или исполнители 
    • От Pulemet
      400.00 руб
      Скачать/Купить дополнение


      Product Option Link - Опция как ссылка на товар
      Модуль создаёт ещё одну опцию под названием "Ссылка на товар", которая позволяет выводить новый блок ссылок на товар в виде опций Opencart в карточке товара. Настройка и создание аналогично стандартным опциям и отличается только заполняемыми полями в карточке товара.
       
      Особенности модуля:
       - простая и быстрая установка; 
       - модуль не заменяет файлы Opencart, все изменения вносятся через Ocmod файл;
       - 4 варинта отображения (списком, выпадающий список, таблицей, расширенная таблица);
       - возможность указать выводить или нет название и изображение для каждого товара в отдельности;
       - при выводе новая опция появится только в карточке товара
       - для хранения данных используется стандартная база Opencart
       - возможность прописать свои стили
      - возможность скопировать опцию в привязанные товары
      - поиск товара по Модели (Код товара) и Артикулу (SKU)

      Новый блок появится в том месте, где в вашем шаблоне выводятся стандартные Опции в карточке товара. Если в вашем шаблоне есть какие-то нестандартные решения, то в данном модуле (при выводе именно нового блока) они, скорее всего, работать не будут.

      Перед покупкой убедитесь что в вашем шаблоне предусмотрена возможность вывода опций в карточке товара. На нестандартных шаблонах возможны проблемы при выводе, это связано с тем, что авторы могут изменить код, отвечающий за вывод опций. Адаптация под ваш шаблон бесплатно (если не появилась в карточке товара).

      Внешний вид опций на разных шаблонах может отличаться и не всегда идентичен с стандартными опциями Opencart, т.к. в шаблоне могут быть заданы свои стили. По возможности помогу с адаптацией.

      100 % работоспособность модуля гарантируется только на дефолтном шаблоне.
      Добавил Pulemet Добавлено 25.04.2018 Категория Опции Системные требования Сайт разработчика Старая цена Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 3.0
      2.3
      2.1 ocStore 3.0
      2.3
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1  
    • От Pulemet
      Модуль создаёт ещё одну опцию под названием "Ссылка на товар", которая позволяет выводить новый блок ссылок на товар в виде опций Opencart в карточке товара. Настройка и создание аналогично стандартным опциям и отличается только заполняемыми полями в карточке товара.
       
      Особенности модуля:
       - простая и быстрая установка; 
       - модуль не заменяет файлы Opencart, все изменения вносятся через Ocmod файл;
       - 4 варинта отображения (списком, выпадающий список, таблицей, расширенная таблица);
       - возможность указать выводить или нет название и изображение для каждого товара в отдельности;
       - при выводе новая опция появится только в карточке товара
       - для хранения данных используется стандартная база Opencart
       - возможность прописать свои стили
      - возможность скопировать опцию в привязанные товары
      - поиск товара по Модели (Код товара) и Артикулу (SKU)

      Новый блок появится в том месте, где в вашем шаблоне выводятся стандартные Опции в карточке товара. Если в вашем шаблоне есть какие-то нестандартные решения, то в данном модуле (при выводе именно нового блока) они, скорее всего, работать не будут.

      Перед покупкой убедитесь что в вашем шаблоне предусмотрена возможность вывода опций в карточке товара. На нестандартных шаблонах возможны проблемы при выводе, это связано с тем, что авторы могут изменить код, отвечающий за вывод опций. Адаптация под ваш шаблон бесплатно (если не появилась в карточке товара).

      Внешний вид опций на разных шаблонах может отличаться и не всегда идентичен с стандартными опциями Opencart, т.к. в шаблоне могут быть заданы свои стили. По возможности помогу с адаптацией.

      100 % работоспособность модуля гарантируется только на дефолтном шаблоне.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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