Предлагаем вашему вниманию скрипт, который проверяет ссылки на сайте. Скрипт идёт по всем страницам сайта и прокликивает все ссылки в том числе и ссылки загрузки файлов. Для более быстрой работы скрипта рекомендуется отключить картинки и другие настройки браузера, запретить показывать сообщения и тд.
Если на сайте есть ссылки с авторизацией можно использовать функцию $browser->set_default_authorization($login,$password);
Используя функции: $browser->disable_download_file_dialog($enable); и $browser->set_default_download($folder); можно проверить скачиваются ли все файлы с сайта.
В результате работы скрипта по заданному пути появляется файл, в котором записываются данные по битым ссылкам в следующем формате:
страница где находиться битая ссылка;href битой ссылки;текст битой ссылки
Пример файла с результатами:
http://humanemulator.net/interface/toolbar.php;http://humanemulator.net/171;Файл
http://humanemulator.net/interface/toolbar.php;http://humanemulator.net/185;Скрипты
http://humanemulator.net/interface/toolbar.php;http://humanemulator.net/205;Справка
Настройки скрипта:
// ////////// настройки скрипта/////////////////// // проверяемый сайт $site="http://humanemulator.net/"; // путь к файлу с плохими ссыками $path_bad_links="./res/bad_links.txt"; // проверочная строка, по которой мы определяем страницу 404 $error_404="Error 404: File Not Found"; // фильтр по словам в href ссылок // задавать то что не нужно собирать через , // например: /forum/,/objects/, и т.д. $filter="/forum/"; // режим отладки - для вывода сообщений в панель отладки $dbg=true;
Сам скрипт:
/* **
// Наш сайт 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/";
// путь к файлу с плохими ссыками
$path_bad_links="./res/bad_links.txt";
// проверочная строка
$error_404="Error 404: File Not Found";
// фильтр по словам в href
// задавать через ,
$filter="/forum/";
// режим отладки
$dbg=true;
// /////////////////// дополнительные модули /////////////////////
// функции
require_once("functions.php");
// ///////////////////// script /////////////////////////////////////////////////////////
debug_mess(date("\[ m.d.y H:i:s\] ")." скрипт запустили");
// добавим главную страницу в массив
$pgl=new PageLinks();
$pgl->page=$site;
$pgl->link_info=$site;
$a_links=array($pgl);
// чистим данные
$file_os->delete($path_bad_links);
// собираем и проверяем
for($k=0;$kpage;
// проверяем фильтры
if(!check_filter($pg))
continue;
// переходим на сайт
$browser->navigate($pg);
// проверить на 404
if(check_page_404($a_links[$k]->link_info))
continue;
// получим все href-ы на странице
$hrefs=$anchor->get_all_hrefs();
// преобразуем в массив
$hrefs=explode("
",$hrefs);
// пройтись по всем hrefs
for($ii=0; $iiget_inner_text_by_href($pg_href1,false);
// если ещё не проверяли проверим
// добавим проверяемую страницу в массив
if(!is_a_exists($pg_href))
{
// создадим объект с данными по ссылке
$pgl=new PageLinks();
$pgl->page=$pg_href;
$pgl->link_info=$str;
$a_links[]=$pgl;
}
}
}
debug_mess(date("\[ d.m.y H:i:s\] ")." скрипт закончил работу
");
// Quit
$app->quit();
Скрипт написан 28.08.2012 в Human Emulator 4.4.19 Advanced.
На момент публикации статьи 28.08.2012 скрипт был рабочий.
Этот скрипт работает в Demo и Free версиях программы Human Emulator. Посмотреть все скрипты для Demo и Скачать Demo