Предлагаем вашему вниманию скрипт, который создаёт карту сайта в xml формате и в виде страницы для сайта. Скрипт сам расставляет приоритет в зависимости от степени вложенности страницы. Главной странице назначается 1.0. Страницам следующего уровня 0.8, потом 0.6 всем остальным назначается значение по умолчанию 0.5. Скрипт имеет фильтра, что бы не добавлять не нужные ссылки или картинки или видео.
В результате работы скрипта по заданному пути появляется файлы sitemap.xml и sitemap.php.
Sitemap.xml строиться на основе протокола для карт сайта. Про этот протокол можно прочитать
Sitemap.php создаётся на основе шаблона страницы вашего сайта.
Пример XML файла с результатами:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>http://humanemulator.net/index.php</loc> <changefreq>daily</changefreq> <priority>1.0</priority> </url> <url> <loc>http://humanemulator.net/interface.php</loc> <changefreq>weekly</changefreq> <priority>0.8</priority> </url> <url> <loc>http://humanemulator.net/interface/main-menu.php</loc> <changefreq>monthly</changefreq> <priority>0.6</priority> </url> <url> <loc>http://humanemulator.net/interface/main-menu/file.php</loc> </url> <url> <loc>http://humanemulator.net/interface/main-menu/edit.php</loc> </url> <url> <loc>http://humanemulator.net/interface/main-menu/type.php</loc> </url> и т.д. |
Настройки скрипта:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// ////////// настройки скрипта/////////////////// // проверяемый сайт $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"; |
Сам скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
<?php /* ** // Наш сайт http://x-scripts.com // Скрипт составления карты сайта. // по любым вопросам касающимся скрипта // можно написать нам на мыло order@x-scripts.com ** */ $xhe_host ="127.0.0.1:7010"; // The following code is required to properly run XWeb Human Emulator require("../../Templates/xweb_human_emulator.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"; // режим отладки $dbg=true; // /////////////////// дополнительные модули ///////////////////// // функции require_once("functions.php"); // ///////////////////// script ///////////////////////////////////////////////////////// debug_mess(date("\[ m.d.y H:i:s\] ")." скрипт запустили"); // чистим предыдущие данные $file_os->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;$k<count($a_links);$k++) { // получаем страницу $pg=trim($a_links[$k]->page); // проверяем фильтры 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("<br>",$hrefs); // пройтись по всем hrefs и удалим лишнее for($ii=0; $ii<count($hrefs); $ii++) { $pg_href=trim($hrefs[$ii]); // проверяем внутренняя ли ссылка if(strpos($pg_href,$site)===false) continue; // строка для временного файла $pg_href1=str_replace($site,"",$pg_href); // если ещё не проверяли проверим // добавим проверяемую страницу if(!is_a_exists($pg_href)) { // строка для записи во временный файл $in_txt=$anchor->get_inner_text_by_href($pg_href1,false); $str=""; // если нет текста вместо него href if($in_txt=="") $str="<a href=\"/$pg_href1\">$pg_href</a><br>"; else $str="<a href=\"/$pg_href1\">$in_txt</a><br>"; $pgl=new PageLinks(); $pgl->page=$pg_href; $pgl->link_info=$str; $a_links[]=$pgl; } } } // запишем в файл закрывающий тэг $textfile->add_string_to_file($res_path."sitemap.xml","\n</urlset>\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\] ")." скрипт закончил работу<br>"); // Quit $app->quit(); ?> |
Скрипт написан 29.08.2012 в Human Emulator 4.4.19 Advanced.
На момент публикации статьи 30.08.2012 скрипт был рабочий.
Этот скрипт работает в Demo версии программы Human Emulator. Посмотреть все скрипты для Demo и Скачать Demo