Предлагаем вашему вниманию скрипт, который создаёт карту сайта в xml формате и в виде страницы для сайта. Скрипт сам расставляет приоритет в зависимости от степени вложенности страницы. Главной странице назначается 1.0. Страницам следующего уровня 0.8, потом 0.6 всем остальным назначается значение по умолчанию 0.5. Скрипт имеет фильтра, что бы не добавлять не нужные ссылки или картинки или видео.
В результате работы скрипта по заданному пути появляется файлы sitemap.xml и sitemap.php.
Sitemap.xml строиться на основе протокола для карт сайта. Про этот протокол можно прочитать .
Sitemap.php создаётся на основе шаблона страницы вашего сайта.
Пример XML файла с результатами:
http://humanemulator.net/index.php daily 1.0 http://humanemulator.net/interface.php weekly 0.8 http://humanemulator.net/interface/main-menu.php monthly 0.6 http://humanemulator.net/interface/main-menu/file.php http://humanemulator.net/interface/main-menu/edit.php и т.д. http://humanemulator.net/interface/main-menu/type.php
Настройки скрипта:
// ////////// настройки скрипта/////////////////// // проверяемый сайт $site="http://humanemulator.net/"; // главная страница сайта $main_page=$site."index.php"; // путь к шаблону для создания карты сайта $temp_path="/data/template.php"; // папка с результатами $res_path="/res/"; // проверочная строка $error_404="Error 404: File Not Found"; // фильтр по словам в href // задавать через , // какие ссылки не обрабатывать $filter="/forum/,/images/,#,.jpg,.mp4";
Сам скрипт:
delete($res_path."sitemap.php"); $file_os->delete($res_path."sitemap.xml"); $file_os->delete($res_path."tmp.txt"); // создать sitemap.xml create_xml($main_page); // добавим главную страницу в массив $pgl=new PageLinks(); $pgl->page=$main_page; $pgl->link_info=$main_page; $a_links=array($pgl); // собираем и проверяем for($k=0;$kpage); // проверяем фильтры if(!check_filter($pg)) continue; // переходим на сайт $browser->navigate($pg); // проверить на 404 if(check_page_404($pg)) continue; // добавим в sitemap.xml if($k>0) { add_to_xml($pg); // запишем во временный файл $textfile->add_string_to_file($res_path."tmp.txt",$a_links[$k]->link_info."\n",60) ; } // получим все href-ы на странице $hrefs=$anchor->get_all_hrefs(); // преобразуем в массив $hrefs=explode("
",$hrefs); // пройтись по всем hrefs и удалим лишнее for($ii=0; $iiget_inner_text_by_href($pg_href1,false); $str=""; // если нет текста вместо него href if($in_txt=="") $str="$pg_href
"; else $str="$in_txt
"; $pgl=new PageLinks(); $pgl->page=$pg_href; $pgl->link_info=$str; $a_links[]=$pgl; } } } // запишем в файл закрывающий тэг $textfile->add_string_to_file($res_path."sitemap.xml","\n\n",60); // создадим sitemap.php файл $links=$textfile->read_file($res_path."tmp.txt",60) ; $templ =$textfile->read_file($temp_path,60); $templ=str_replace("{SITE_MAP}",$links,$templ); // запишем файл $textfile->write_file($res_path."sitemap.php",$templ,60) ; debug_mess(date("\[ d.m.y H:i:s\] ")." скрипт закончил работу
"); // Quit $app->quit(); ?>
Скрипт написан 29.08.2012 в Human Emulator 4.4.19 Advanced.
На момент публикации статьи 30.08.2012 скрипт был рабочий.
Этот скрипт работает в Demo версии программы Human Emulator. Посмотреть все скрипты для Demo и Скачать Demo
Сергей
Прикольно. Задался создать на сайте карту в формате html. Так как карта сайта есть в xml — но меня заинтересовал вариант генерации сайта в php — Попробуем. Спасибо. )))