ВСЕ ЗАПИСИ

Статьи,заметки

Скрипт листинга директорий

Меня несколько раз просили дать скрипт позволяющий вывести все изображения с сайта на одной странице, я тогда давал просто ссылку, но думаю, что будет полезно посвятить этому страничку в блоге.

Вот, собственно, код скрипта:

<?php
session_start();
$dir="../";
$_SESSION['var333']=$dir;
function showTree($folder) {
$files = scandir($folder);
foreach($files as $file) {
if (($file == '.') || ($file == '..')) continue;
$f0 = $folder.'/'.$file;
if (is_dir($f0)) {showTree($f0);}
else
{$ext=pathinfo ($f0,PATHINFO_EXTENSION);
if(($ext=='png') or ($ext=='jpg') or ($ext=='jpeg') or ($ext=='gif'))
{
$f0=str_replace($_SESSION['var333'],'', $f0);
echo '<center><img src="http://'.$_SERVER['HTTP_HOST'] .$f0.'" /></center><br />';
}
}
}
}
showTree($dir);
?>

Чтобы показать все изображения на сервере, включая те, что находятся во вложенных подкаталогах, скрипт следует разместить в отдельной папке (можно назвать её например, imgscan), и поместить папку в корень домашней директории сервера. Можно попробовать поменять путь сканирования по своему усмотрению, изменяя значение переменной $dir. Если браузер не повесится, из-за большого количества/размеров картинок, то скрипт выведет на странице все изображения с сайта с заданными расширениями. Следует учитывать, что переменная $ext чуствительна к регистру, если нужно, чтобы показывались файлы с расширениями в верхнем регистре, их надо прописать дополнительно, например, ($ext=='PNG') or ($ext=='JPG').

При желании, вместо картинок можно вывести список кликабельных ссылок на них заменив строку
echo '<center><img src="http://'.$_SERVER['HTTP_HOST'] .$f0.'" /></center><br />';
на
echo '<a href="http://'.$_SERVER['HTTP_HOST'] .$f0.'">http://'.$_SERVER['HTTP_HOST'] .$f0.'</a><br />';

Изменяя в скрипте фильтр по расширению файлов, можно адаптировать его под свои конкретные задачи.
У меня же этот скрипт выполняет довольно-таки серьёзную работу: выводит список всех php и js файлов на сайте с указанием времени последнего изменения файла.В PHP для получения времени последнего изменения существует функция filectime(), (может работать не на всех системах, но у меня на Linux-хостинге и в Windows - работает). И если имеется "эталонный'' список файлов, то можно запросить список с сервера через скрипт и сравнить их на идентичность. В случае, если к сайту получит доступ злоумышленник, добавит какие-либо скрипты на сайт, или пропишет вредоносный код в существующие, это будет обнаружено сразу. У меня уже был раз случай, когда сайт пытались взломать, и даже успели залить шелл на сервер.

Я, конечно, не просматриваю постоянно список файлов на сервере из тысячи строк,пытаясь увидеть разницу, это нереально :) Для этого была написана специальная программа, которая в автоматическом режиме опрашивает скрипт, и сверяет полученные данные со своей базой. В случае несовпадения, она отсылает список изменённых, новых, или отсутствующих файлов на email. Если кому-либо интересна эта тема, могу выложить исходник проги под Delphi.

А здесь можно скачать скрипт

Добавлено: март 2016

©Veterock




комментарии (2)



написал MShinom
Мобильный, выездной шиномонтаж в Москве круглосуточно! Мегафон: +7(495)908-97-71 Мтс: +7(915)448-25-25 Хранение шин. 1. Шиномонтажные работы. 2. Снятие секреток. 3. Переобувка шин. 4. Ремонт проколов и порезов. Выездной шиномонтаж 24 часа в Москве и МО. Звоните!
добавлено: 17.07.18 20:57
написал Antoninkayak
Современный эликсир для похудения – это бомба для похудения. Это реально работающий сжигатель жировых отложений. Препарат является.. Монастырский сбор при похудении, помогает не только терять вес, а и понижает давление. Купить в минске цена монастырский чай от курения купить в.. Это лучшие тренировки для похудения, упругости и подтягивания также с нашим проверенным комплексом приседаний на 30 дней в виде таблицы.. 63jmxg598d
добавлено: 02.05.18 16:48
Имя

Сообщение

введите защитный код


Обновить

Powered by ©Veterock Studio 2013