Скрипт перелинковки страниц поисковыми запросами с выводом статичных блоков
Понедельник, 2 июля 2012 г.
Просмотров: 9120
Настроение: Спать хочу, но немогу заснуть
В колонках звучит: Crematory - black celebration
Подписаться на комментарии по RSS
Продолжение к теме перелинковки страниц ключевыми словами полученных из поисковых запросов.
В прошлой статье я привел скрипт который генерирует блоки ссылок налету
, каждый раз новый что не всем нравилось, а оно и понятно для того чтобы устойчиво держаться в поисковой выдаче нужны постоянные ссылки, которые не мог обеспечить скрипт.
Меня просили и в комментариях даже писали чтобы я доработал скрипт для генерации статических блоков ссылок, которые не будут меняться с обновлением страниц сайта, и естественно мне было вломы что то делать))), да и времени помоиму тогда небыло этим заниматься. Так вот на самом деле скрипт который может выводить статические блоки у меня уже давно был, просто я его потерял и думал что уже никогда не найду, но в один прекрасный момент, он неожиданно попался мне на глаза, и поэтому я его привожу здесь))), также прикреплю к посту файлы этого скрипта с примером.
И кстати самое что не удобное в этом скрипте, так это то что если вы захотите добавить ссылок, то блоки на всех страницах сгенерируются заного, а соответственно они изменятся полностью воот.
Сам генератор блоков ссылок, его нужно запускать вручную 1 раз))
<?php $inpage=1; //размножить каждую ссылку на число страниц //обьявляем файлы $page_file=file("page.txt"); //страницы $links_file=file("links.txt"); //ссылки $fd=fopen("out.txt","a"); //выход $outfile = join($fd, file('out.txt')); $page_count_start=count($page_file); $links_count_start=count($links_file); $page_count=$page_count_start; $j=0; $b = array(); $i = array_rand ($links_file); while($key!=1){ preg_match('!<a href="%28.*?%29">(.*?)</a>!si',$links_file[$i],$tmp[$i]); $url=$tmp[$i][1]; $keywords=$tmp[$i][2]; if ($page_count>0){ echo' страницы есть '; $page_number=$page_file[$j]; //$j++; $page_count=$page_count-1; }else{ echo' закончились страницы, обходим их заного '; $j=0; $page_count=$page_count_start; $page_number=$page_file[$j]; //$j++; $page_count=$page_count-1; } $page_out=trim($page_number).'~'.trim($url).'~%'.trim($keywords).'%'; $url_out=$url.'~%'.$keywords.'%'; $url_lost='~%%'; if(!stristr($url_out,$url_lost)){ if (stristr($outfile,$url_out)){echo' у нас повтор ссылки на страницах '; echo' .. удаляем ссылку.. ';unset($links_file[$i]); if($links_file<=$b){echo' упс все, ссылки закончились3 ';$key='1';} else{echo' еще есть ссылки3 ';$i = array_rand ($links_file);}}else{ $page_out=trim($page_number).'~'.trim($url).'~%'.trim($keywords).'%'; fwrite($fd, $page_out."\r\n"); unset($links_file[$i]); if($links_file>=$b){ $i = array_rand ($links_file); $j++; }}}else{$key='1';}} fclose($fd); ?>
Генератор блока ссылок, генерирует таким образом, чтобы в каждом боке по возможности небыло повторяющихся страниц акцепторов.
Сам скрипт который будет выводить блоки ссылок на страницах.
использовать так <?php include('generator_block_links.php')?> вставлять в том месте где планируется вывод блока с ссылками.
В этом скрипте предусмотренна предварительная шаблонизация блока и самих ссылок, т.е скрипт подключает к себе шаблоны по которым будет выводить ссылки - этими шаблонами являются файлы
tmpl_links_block.txt и tmpl_link.txt
<?php $TheUrl = "http://".$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; // вызванная страница // считываем в массив файл со списком ссылок------------------------------------------------ // out.txt // формат "урл откуда ссылка=урл куда ссылка=текст ссылки=текст блока вокруг ссылки $arrLinkStrings = file(".linkshow/out.txt"); $arrOtkuda = array(); $arrKuda = array(); $arrTextWords = array(); $arrTextBlock = array(); foreach($arrLinkStrings as $strString) { //list($arrOtkuda[],$arrKuda[],$arrTextWords[],$arrTextBlock[]) = split("~",$strString); list($arrOtkuda[],$arrKuda[],$TextBlock) = split("~",$strString); $arrTextBlock[]=str_replace("%", "", $TextBlock); list($do,$arrTextWords[],$posle) = split("%",$TextBlock); } // считываем шаблон вывода блока ссылок // tmpl_links_block.txt $tmplLinksBlock = file_get_contents('.linkshow/tmpl_links_block.txt'); // считываем шаблон вывода одной ссылки // tmpl_link.txt $tmplLink = file_get_contents('.linkshow/tmpl_link.txt'); // ищем в массиве урл страницы, на которой мы находимся-------------------------------------------- $strLinks = ""; for($i = 0; $i <= (count($arrOtkuda)-1); $i++) { $arrOtkuda[$i]=trim($arrOtkuda[$i]); $arrKuda[$i]=trim($arrKuda[$i]); $arrTextWords[$i]=trim($arrTextWords[$i]); $arrTextBlock[$i]=trim($arrTextBlock[$i]); if ($TheUrl==$arrOtkuda[$i] OR $TheUrl==$arrOtkuda[$i]."index.html" OR $TheUrl."index.html"==$arrOtkuda[$i]) { $strLink = "<a href="%22%20.%20$arrKuda[$i]%20.%20%22" target="_blank" class="mylinks">" . $arrTextWords[$i] . "</a>"; if( strlen( $arrTextBlock[$i]) > 1) { // если текстовый блок не пустой $strLink = str_replace($arrTextWords[$i], $strLink, $arrTextBlock[$i]); } $strLink = str_replace("-item-", $strLink, $tmplLink); $strLinks = $strLinks . $strLink; } } // отдаем список ссылок $strLinks = str_replace("-items-", $strLinks, $tmplLinksBlock); echo($strLinks); ?>
Как и писал прикрепляю сам скрипт linkator_keblor.ru_.zip 1649
Еще записи по теме
- Накрутка и заработок с ClickCashMoney
- скрипт перелинковки страниц поисковыми запросами
- Установка, чтение и удаление cookie с помощью javascript
- Многосайтовость на wordpress
- Скрипт статистики поисковых запросов alexcounter version 3.7b
- Гостевая книга с авторизацией и регистрацией
- как я отдыхаю в свободное время
Комментариев: 29
Здравствуйте, не могли бы вы пошагово объяснить как установить скрипт на сайт, вот я закачал папку с файлами скрипта на сервер, а дальше что? как вывести блок ссылок на страницах сайта?
Добрый день, я ведь написал как его использовать "использовать так <?php include('generator_block_links.php')?> вставлять в том месте где планируется вывод блока с ссылками."
Т.е откройде шаблон вашего сайта и найдите место где у вас выводится сайдбар, внутрь этого блока вставьте <?php include('generator_block_links.php')?>
К сожалению в шаблон моего движка php код кажется не вставить, там все в блоках [component][/component], для вставки html кодов есть специальные виджеты, а вот для php кодов не предусмотрено...
я предпологаю что файл шаблона парсится php скриптом, вставляя на место этих блоков какие либо определенные данные.
Попробуй найти часть кода отвечающего за вирджеты, посмотри исходный код страницы сайта и сравнивай ее с файлом шаблона. Как найдешь, просто попробуй вставить код который я приводил выше, или ниже конструкции [][/], или выше и посмотри что получится. Будут ошибки сыпаться, знач чето не так, если будет выводиться текст но не в том месте, то методом тыка подбирай где тебе выводить его нужно.
Вобщем ХЗ но ставлю всё как положено но не ошибок и не линков тож нет. В чём беда?
А ты уверен что в том файле разместил код?
Проверь может у тебя пустые файлы с линками, еще может
не прописал.Проверь у тебя в файле .htaccess нет ли записи похожей на
если есть убери ее на время - этот код устанавливает уровень выводимых сообщений об ошибках, я непомню точно какой вообще запрещает вывод, еще глянь в том файле где разместил код скрипта что то похожее.Возник вопрос, новые ссылки добавятся в блоки или все блоки будут обновлены. Возраст ссылки (связки донор-акцептор) имеет большое значение, поэтому вопрос очень актуальны)
Честно не помню как работает скрипт))), смотрю по коду и вижу что вроде бы генератор добавляет новые ссылки в блоки не удаляя старых, только перед добавлением новых, нужно удалить из файлов page.txt и links.txt старые данные и записать туда новые.
За скрипт спасибо. Ссылки можно добавлять, как вы и написали)
Только вот одна проблема на joomla 1.7 не работает (((
Скрипт будет работать независимо от типа движка сайта, я писал выше что проверить надо, у кого то не отображалось ничего.
Еще как вариант проблемы это то, что некоторые CMS кешируют страницы и шаблоны целиком, и может у тебя именно тот случай, попробуй очистить кеш, если это позволяет joomla.
TruLander, после инклюденга кода
сайт "ложиться".
Алексей, если удалить строку инклуда скрипта все работает нормально? Просто не могу понять во второй строке не хватает <? или <?php, может из за этого?
И что ты подразумеваешь под тем что сайт ложиться? ошибки выводит, или ничего не отображает? если ошибки, то напиши какие, если ничего не отображается возможно тоже ошибки, но их вывод заблокирован(чтобы не пугать посетителей), обычно сервер сам создает log файлы ошибок, в директории вместе с файлом у которого возникла ошибка. поищи его там)).
у вас в комментах стоит защита от вызова php
. в исходном коде естьв логи выпадает
Вот по ошибке видно что он не может открыть файл скрипта, видимо до него адрес указан не правильно.
попробуй указать адрес по другому, вместо
укажи
если у тебя скрипт лежит на директорию выше от вызываемого им скрипта, то нужно писать
если не получится, то получиться наверняка если ты выложишь скрипт без папок, и пропишешь к нему адрес
И кстати попробуй выставить права на все файлы скрипта 777 может тоже в этом дело.
С подключение разобрался
но так и не вывело, вот, что делал
1. подправил адреса вызова файлов
на
2. прописал права 777, хотя для out.txt ставил их с самого начала, файлик не обновлялся. Может это добавьте это в инструкцию?
3. в out.txt добавил url скрипта (generator_block_links.php) и вызвал его браузере напрямую. Скрипт отработал и вывел ссылки.
НО очень интересно: каждую ссылку вывел столько раз сколько указано в файле tmpl_link.txt переменная -item-. Сократил -item- до одной.
4. смотрел принтом, что содержит каждая функция из файла generator_block_links - все нормально и массив и шаблоны. Проверял совпадает ли адрес в браузере и адрес страницы
После всех этих манипуляций, так и не удалось отобразить в шаблоне джумлы. Кеширование проверял - нету.
Понимаю, что очень странная ситуация) т.к. ничего вроде сложного в скрепте нету, определяем страницу проверяем адрес в массиве, разбираем массив и выводим данные) но все же так не работает
Блин я чесн не пойму в чем может быть проблема, если прямым вызовом все работает нормально, а после вставки в шаблон не выводит ничего. И кстати все правильно в шаблоне tmpl_link.txt должна быть одна строка))).
Слушай попробуй вставлять этот код в другие файлы шаблона, в разные места, просто для теста.
У меня бывало что я не знал какой файл отвечает за вывод в определенных местах сайта, то я просто брал и вставлял текст вида ########## 11111111111 ############ и искал в исходном коде страницы, и если этого не отображалось, то соответственно был не тот файл т.е искал методом исключения.
Вопрос по скрипту.
Файл (generator_block_links.php) выводит ссылки на страницу проблем нет когда в таблице (out.txt) есть записи.
Файл (generator_out_file.php) при запуске что должен делать?
Как заполняются таблицы (links.txt) (page.txt) (out.txt)
Делал так, очистил все таблицы и запустил файл (generator_out_file.php)
Ничего не произошло все таблицы остались пустыми, как их наполнить?
Ну в общем скрипт заработал (частично), пришлось кое что изменить.
но ссылки выдает только если адрес страницы
http://www.sait/6.html
а если адрес страницы
http://www.sait/1/3.html
то выдает ошибку и не показывает ссылки.
Как бы поправить что-то в файле generator_block_links.php
Piter, из названия файла должно же быть понятно, что файл generator_out_file.php генерирует выходной файл, а выходным файлом является какрас out.txt, в архиве со скриптом файлы заполнены демонстрационной информацией, скачай заново и посмотри как там все должно быть, а еще вот тебе ссылка на первый пост этого скрипта http://www.keblog.ru/page/skript-perelinkovki-stranic-poiskovymi-zaprosami .
Tester, странно все это, у меня на рабочем сайте стоит скрипт, там все ок, с любым видом ссылок, какие ошибки хоть пишет - приведи пример.
Все вроде разобрался со скриптом.
Ошибки были такие.
1. В файле generator_block_links.php надо было прописывать путь ко всем файлам в виде: "/www/designba/www/htdocs/linkator/out.txt" т.е. полный путь.
2. В скрипте отсутствует парсер сайта поэтому файлы links.txt и page.txt надо предварительно наполнить страницами и ссылками на свой сайт, что не очень удобно если сайт наполняется автоматически.
3. Строка вывода ссылок у меня получилось такой:
скрипт какой есть))), модифицировать его конечно можно, но заниматься я этим не оч хочу)))). а чтоб код вывести в сообщении, его надо было обрамить в тег < pre >, кнопкой "код"
Спасибо за разъяснение.
3. Строка вывода ссылок у меня получилось такой:
Спасибо автору за работу. Полезная вещь для продвижения. Если можно ссылку на работающий пример. Заранее Благодарю.
Незачто)))), а вот ссылкой не поделюсь))), не хочу ничего палить, не обижайся.
А можно похожий скрипт сделать для ручного сайта на html ? понятно что все функции php поддерживаются.
Юрий, этот скрипт подходит для всех сайтов которые расположены на серверах(хостингах) поддерживающих PHP.
В твоем случае, если страницы сайта с расширением .html, то по умолчанию эти файлы не обрабатываются интерпретатором PHP, нужно либо менять расширение файлов с .html на .php, либо в настройках сервера прописывать к исполняемым расширениям html документы. Других возможностей не знаю))
Ок. Буду разбираться
Ок. У меня php, но имена файлов tmpl_links_block.txt и tmpl_link.txt сбили с толку. попробую разобраться
Юрий, эти файлы используются самим скриптом, в них находятся шаблоны выводов ссылок.