Сканування структури файлів і папок сайту

Аватара пользователя
demonx
Администратор
Сообщения: 592
Зарегистрирован: 27 май 2022, 21:33
Откуда: Ірпінь
Контактная информация:

Сканування структури файлів і папок сайту

Сообщение demonx »

Цей файл є повноцінним PHP-скриптом, який створює веб-сторінку для сканування структури файлів і папок сайту. Він реалізований в одному файлі, як і було бажано, підтримує 3 мови (українську, англійську та російську), має красиве оформлення за допомогою Bootstrap та кнопку для завантаження звіту в TXT-файлі. Нижче детальний опис його основних функцій і компонентів:
1. Підтримка багатомовності

Скрипт визначає тексти для трьох мов (uk, en, ru) у масиві $languages.
Поточна мова вибирається через параметр GET (?lang=uk/en/ru). За замовчуванням — українська.
Кнопки для перемикання мов відображаються в інтерфейсі з класами Bootstrap для стилізації (активна кнопка виділяється).
Усі елементи інтерфейсу (заголовки, кнопки, повідомлення) динамічно змінюються залежно від обраної мови.

2. Сканування структури файлів і папок

При натисканні кнопки "Сканувати" (або еквівалентної на інших мовах) запускається рекурсивне сканування кореневої директорії сайту (використовується __DIR__).
Функція scanDirectory($path, $indent, $output_file):
Рекурсивно переглядає директорії та файли.
Ігнорує системні елементи: ., .., .git, .DS_Store, structure.txt.
Формує дерево-структуру з відступами (|-- та пробіли для ієрархії).
Записує результат у файл structure.txt (очищає файл перед скануванням і додає рядки через file_put_contents з прапорцем FILE_APPEND).
Обробляє помилки через try-catch, записуючи їх у файл (наприклад, "[Помилка: повідомлення]").

Сканування відбувається так само, як у вихідній версії, але з покращеннями для ігнорування файлів і стилізації виводу.

3. Відображення результатів

Після сканування виводить заголовок "Структура файлів і папок:" (або еквівалент).
Показує вміст structure.txt у тегу <pre> з HTML-екрануванням (htmlspecialchars) для безпечного відображення.
Блок <pre> стилізовано: фон білий, межа, максимальна висота 500px з прокруткою, шрифт 14px.
Якщо файл не створено, виводить повідомлення про помилку червоним кольором.

4. Кнопка завантаження звіту

Після успішного сканування з'являється кнопка "Завантажити звіт (structure.txt)" (або еквівалент).
Кнопка реалізована як посилання <a href='structure.txt' download>, що дозволяє завантажити файл безпосередньо з браузера без потреби заходити на хостинг.
Це відповідає вимозі уникнути повторного доступу до хостингу для скачування.

5. Оформлення інтерфейсу

Використовує Bootstrap 5.3.0 для responsive дизайну: контейнер, карта (card), кнопки з класами btn-primary, btn-success тощо.
Додаткові стилі в <style>: фон тіла, відступи, стилі для <pre>.
Інтерфейс центрується, має заголовок, селектор мов і форму з кнопкою сканування.
Скрипт для Bootstrap підключається в кінці для інтерактивності.

6. Загальні особливості

Файл самодостатній: все в одному start.php, без залежностей від інших файлів (крім зовнішніх CDN для Bootstrap).
Безпека: використовує htmlspecialchars для виводу, щоб уникнути XSS.
Обробка помилок: базова, через вивід повідомлень і запис у файл.
Сумісність: PHP-функції стандартні, працюють на більшості хостингів.

Цей скрипт повністю відповідає вказаним вимогам: сканує структуру як раніше, підтримує 3 мови, красиво оформлений і має кнопку завантаження TXT-звіту. Якщо потрібно внести зміни, дайте знати!
Вложения
start.zip
(2.18 КБ) 3 скачивания