Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
PHP скрипт сканер+генератор карты сайта
Этот скрипт позволяет отсканировать любой сайт и построить карту сайта. Использует базу mysql и стандартную библиотеку PHP curl. Работает с любыми самыми сложными сайтами. Не работает с сайтами, формирующими страницы на ajax без формирования альтернативной копии для поисковых систем. Но для таких сайтов карта сайта и не нужна, т.к. не существует прямого адреса у страниц. Для всех остальных случаев данный скрипт - идеальное решение для формирования карты сайт.
Здесь приведен пример использования данного класса для кодовой страницы windows-1251 и описание класса.
/sitemap/index.php создает базу, если ее нет, сканирует сайт и строит карту. Может использоваться для полного сканирования сайта и формирования карты. Может выполняться прямым вызовом или по cron(крону) имя_домена/sitemap/
<?
// настройки подключеня к БД
//include_once '/config.php';
define("HostName","localhost"); // Имя сервера (хост)
define("DBName","db_htmlwebru"); // Имя базы данных
define("UserName","root"); // Логин
define("Password",""); // Пароль
@mysql_connect(HostName,UserName,Password);
@mysql_select_db(DBName);
mysql_query("SET NAMES cp1251");
// дальше ничего менять не нужно
include_once 'search.inc.php';
if (!headers_sent()) header('Content-Type: text/html; charset=windows-1251');
@mkdir( dirname(__FILE__) , 0777 );
?>
<html>
<head>
<title>Генерартор карты сайта</title>
<meta http-equiv="Content-Type" content="text/html; windows-1251" />
</head>
<body>
<?
// уничтожить таблицы на случай если созданы в другой кодировке
mysql_query('DROP TABLE IF EXISTS `'.$sitemap->page.'`');
// список страниц сайта в виде ссылки, заголовка и анонса (первых 300 символов страницы для вывода в результатах поиска).
/*
`time` datetime not null,
time - дата последнего изменения страницы
*/
mysql_query('CREATE TABLE IF NOT EXISTS '.$sitemap->page.' (
`id` int UNSIGNED NOT NULL PRIMARY KEY auto_increment,
`url` varchar(255) not null default "" UNIQUE,
`title` varchar(128) not null default "",
`description` text not null default ""
) DEFAULT CHARACTER SET cp1251 COLLATE cp1251_bin');
ignore_user_abort(true);
set_time_limit(100000);
//session_write_close();
$sitemap->error("<br>Начало сканирования ".date('d-m-Y H:m:i')."\n\n",3);
$sitemap->update('',1); // рекурсивно обойти все страницы сайта
$sitemap->error("<br>Окончание сканирования ".date('d-m-Y H:m:i')."\n\n",3);
$result=mysql_query('SELECT count(*) as c from '.$sitemap->page);
$page=($row=mysql_fetch_assoc($result))?$row['c']:0;
$sitemap->error("<br>Всего на сайте <b>".$page."</b> страниц.<br>");
$sitemap->build();
?>
Карта сайта построена !
</body></html>
/sitemap/search.inc.php класс работы с картой сайта
$sitemap = new kdg_sitemap();
/** Сканер сайта и генератор карты сайта в формате XML
* (c) Колесников Дмитрий Геннадьевич
* Лицензированно только на использование
* Запрещена публикация и любое распространение в т.ч. в модифицированном виде.
* Информация на http://htmlweb.ru/php/example/sitemap_generator.php
* Class kdg_sitemap
*/
class kdg_sitemap
{
var $page = 'sm_kdg_page'; //имя таблицы в БД
var $root = 'kdg.html-web.ru'; //(isset($_SERVER['HTTP_HOST'])?$_SERVER['HTTP_HOST']:'htmlweb.ru'); // на случай запуска по cron
var $Debug = 2; # 0-работать молча,1-выдавать только ошибки, 2-выдавать ошибки и минимум информации,3-подробное информирование при работе
// параметры карты сайта по-умолчанию
var $pr='0.9'; // приоритет
var $cf="weekly"; // периодичность обновления страницы "еженедеьно"
// Используйте: "never">Не обновляю, "weekly">Еженедельно, "daily">Ежедневно, "hourly">Каждый час, "monthly">Ежемесячно, "yearly">Ежегодно
// остальное не трогать
var $robots = '';
var $Link_Cache = []; // ссылки, которые были или будут просканированы
var $url = ''; // сканируемый url
var $scan = 0;
var $time='';//time(); // дата последнего обновления страницы
function __constructor(){}
/** Вывод сообщений
* @param string $err - информационное сообщение
* @param int $deb - тип сообщения 1-ошибка, 2-важное сообщение, 3-неважное сообщение
*/
function error($err, $deb = 1){}
/** проверка отсканированна ли данная страница сайта
* @param string $var
* @return array|false
*/
function in_page($var){}
/** чтение и анализ старницы сайта
* @param string $url
* @param int $scan
* =1 рекурсивно сканировать все страницы сайта, выделить заголовок страницы, тело, описание.
* =2 только одну страницу и её ссылки
* @param string $body - если передано, то не читать с сайта
* @return string 'delete'|'no'|'ok'
*/
function update($url, $scan = 0, $body = ''){}
/** разбор ссылки, отделение внешних от внутренних
* @param $url
* @param string $base
* @param int $ext
* @return string
*/
function url_short($url, $base = '', $ext = 0){}
/** проверка вхождения адреса в robots.txt
* @param string $url страница для проверки
* @return bool
*/
function is_robots($url){}
/** чтение одной страницы
* @param $site
* @return string
*/
function ReadUrl($site){}
/** Чтение страниц, парсинг ссылок и занесение их в БД
* @param $urls
* @param $from
*/
function cacheReadUrl($urls, $from){}
/**
* формирование карты сайта на основании информации в БД
*/
function build(){}
}
readme. - Инструкция по использованию
Распакуйте всё в папку /sitemap на сервере. измените настройки в начале файлов index.php, search.inc.php Пропишите путь к карте сайта в robots.txt: sitemap: /search/sitemap.xml Запустите имя_домена/sitemap/ вызывайте при добавлении, изменении или удалении каждой страницы $sitemap->update($_GET['url']); $url - страница, которую нужно обновить. удобно вызывать после сохранения изменений страницы если страница возвращает 404 ошибку или она пустая - она будет удалена из базы. после обновления страниц переформируйте карту XML-сайта вызвав $sitemap->build(); Для полного пересканирования сайта и формирвоания карты можете выполнять по крону имя_домена/sitemap/
.htaccess - отменяет настройки движка для этой папки
RewriteEngine Off
Скрипт позволяет отсканировать любой сайт и построить карту формата XML для поисковых систем Яндекс, Google. Скрипт полностью открытый и не использует никаких дополнительных библиотек.
А здесь можно построить карту сайта.
Здесь можно купить и скачать скрипт поиска по сайту + генератора карты сайта.
Здесь можно скачать PHP скрипт генератора карты сайта.
Соглашение по использованию:
- Вы можете использовать полученный код в любых своих разработках, вы не обязаны указывать ссылку на источник.
- Вы НЕ имеете права перепродавать её, размещать в свободном или ограниченном доступе, а также публиковать в любом виде.
- Все остальные права сохраняются за автором.
- Вы можете обратиться к автору с вопросами, замечаниями, пожеланиями. Контакты здесь.
За 3900 рублей (~43$) Вы можете выбрать один из двух вариантов скрипта, которые существенно отличаются друг от друга.
При нажатии кнопки загрузить, Вы подтверждаете согласие с условиями использования скрипта, описанными на этой странице.
С Вашего баланса будет списана сумма в 3900 рублей (~43$) и начнется загрузка файла.
Сомневаетесь? Вы всегда сможете задать вопросы и получить помощь.
.
Прокомментировать/Отблагодарить