Предлагаем вашему вниманию скрипт, который создаёт карту сайта в 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 — Попробуем. Спасибо. )))

Добавить комментарий

*
*

Необходимые поля отмечены*