π README
Simple PHP File Lister
A lightweight, zero-configuration PHP directory lister with a modern interface. Just drop index.php into any directory on a PHP-enabled serverβit works immediately with no setup required.
<img width="842" height="942" alt="image" src="https://github.com/user-attachments/assets/a88b8572-6204-4d8b-9e4d-effaa9b9cf37" />
Features
- β
Zero configuration β works immediately
- π Directory navigation with breadcrumbs and pagination
- βοΈ Multi-select β batch download or delete multiple files
- π Security-hardened β protects against path traversal and code execution
- π¨ 5 themes β Purple, Blue, Green, Dark, Light (user-switchable)
- πΌ File previews β hover to preview images/videos
- π΅ Built-in players β play audio and video files in-browser
- π€ File upload β drag-and-drop or button upload (optional)
- βοΈ File management β rename, delete, create folders (optional)
- π¦ ZIP downloads β download directories as ZIP files
- π± Responsive design β works on desktop, tablet, and mobile
- β‘ Single file β no external dependencies except Font Awesome CDN
Quick Start
Requirements:
- PHP 7.0+ (7.4+ recommended)
- Web server with PHP support
- Optional: ZipArchive extension for ZIP downloads
Installation:
- Download
index.php from releases
- Copy it into the directory you want to list
- Visit the directory in your browser
That's it! The file list renders automatically.
Customization
All settings are in the CONFIGURATION section at the top of index.php (lines 18-60). Open the file in a text editor to customize:
Display Settings:
$title = "Simple PHP File Lister";
$subtitle = "The Easy Way To List Files";
$footer = "Made with β€οΈ by Blind Trevor";
Feature Toggles:
$enableRename = false; // Rename files/folders
$enableDelete = false; // Delete files/folders
$enableUpload = true; // Upload files
$enableCreateDirectory = true; // Create folders
$enableDownloadAll = true; // "Download All as ZIP" button
$enableIndividualDownload = true; // Individual file downloads
Themes:
$defaultTheme = 'purple'; // purple, blue, green, dark, light
$allowThemeChange = true; // Let users change themes
Pagination:
$defaultPaginationAmount = 30; // Items per page (5, 10, 20, 30, 50, 'all')
$enablePaginationAmountSelector = true; // Show pagination dropdown
Upload Settings:
$uploadMaxFileSize = 10 * 1024 * 1024; // Max file size (10 MB)
$uploadMaxTotalSize = 50 * 1024 * 1024; // Max batch size (50 MB)
$uploadAllowedExtensions = []; // [] = all except blocked
Advanced:
$includeHiddenFiles = false; // Show hidden files (starting with .)
$zipCompressionLevel = 6; // ZIP compression (0-9)
$showFileSize = true; // Display file sizes
$showFolderFileCount = true; // Display folder/file counts
Blocked Extensions:
Edit the BLOCKED_EXTENSIONS constant to control which file types are hidden and blocked from download/upload (e.g., .php, .exe, .sh).
Security
SimplePhpFileLister prioritizes security:
- Path Traversal Protection β Uses
realpath() validation, prevents ../ attacks
- Code Execution Prevention β Blocks dangerous file extensions (
.php, .exe, .sh, etc.)
- Input Sanitization β All user inputs escaped with
htmlspecialchars()
- Security Headers β CSP, X-Content-Type-Options, X-Frame-Options, Referrer-Policy
- Hidden Files β Automatically excluded from listings (starting with
.)
- Secure Downloads β Content-Disposition headers, MIME type whitelisting
- No Database β Single auditable file reduces attack surface
Key Features
Multi-Select:
- Select multiple files/folders with checkboxes
- Batch download as ZIP or batch delete
- Displays selection count and total size
File Upload:
- Drag-and-drop files anywhere on the page
- Multi-file upload with progress feedback
- Automatic duplicate handling
- Size limits and file type restrictions
Media Players:
- Audio β MP3, WAV, OGG, M4A, FLAC, AAC
- Visual progress bars for audio playback
- <img width="335" height="301" alt="image" src="https://github.com/user-attachments/assets/678d1780-d6c2-4f3b-8592-26929d982d91" />
- Video β MP4, WebM, OGV (fullscreen lightbox)
- Hover over files to reveal play buttons
- <img width="814" height="510" alt="image" src="https://github.com/user-attachments/assets/b470f8b5-122c-42ee-917e-1f9d3da9ae47" />
File Management:
- Rename files/folders (configurable)
- Delete files/folders (configurable, permanent)
- Create new folders (configurable)
- All operations include path validation and security checks
Themes
5 built-in themes available:
- Purple (default) β Vibrant purple-magenta gradient
- Blue β Fresh cyan-blue gradient
- Green β Natural teal-green gradient
- Dark β Sleek dark mode
- Light β Minimal light theme
Users can switch themes via the floating palette icon (when
$allowThemeChange = true). Preferences are saved in browser localStorage.
<img width="521" height="679" alt="image" src="https://github.com/user-attachments/assets/6ef3275f-e373-4b5f-b239-72b1d36c0d19" />
Notes
- No built-in authenticationβuse web server auth (
.htaccess, HTTP Basic Auth)
- Hover previews work on desktop only (disabled on touch devices)
- Delete operations are permanentβno trash/recycle bin
- Upload requires proper PHP configuration (
upload_max_filesize, post_max_size)
- Version info displayed in footer (auto-updated by GitHub Actions)
Version Management
This project uses automated semantic versioning:
- Version location:
APP_VERSION constant in index.php and footer
- Auto-increment: PATCH version bumped on each merge to
main
- Manual updates: Edit
APP_VERSION for MAJOR/MINOR changes
- Releases: Auto-created on releases page
- Skip versioning: Include
[skip-version] in commit message
Updating
To update to a newer version:
- Download new
index.php from releases
- Replace existing file
- Re-apply your configuration settings (document them first!)
License
Free to use, modify, and redistribute.
Simple PHP File Lister β’ Β© Andrew Samuel 2026
π Releases
Version 1.1.13
v1.1.13
Released on January 13, 2026
## Version 1.1.13
Released on 2026-01-13
This version was automatically created when code was merged into the main branch.
### Changes
- Improve error message for MPEG format browser compatibility issues
- Remove test files
- Add support for .mpg and .mpeg video file playback
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.1.12
v1.1.12
Released on January 13, 2026
## Version 1.1.12
Released on 2026-01-13
This version was automatically created when code was merged into the main branch.
### Changes
- Add HTTP range request support to enable audio duration detection for all MP3 files
- Add durationchange event listener to handle Infinity duration edge case
- Fix audio player progress bar and timer for longer tracks by adding loadedmetadata listener
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.1.11
v1.1.11
Released on January 13, 2026
## Version 1.1.11
Released on 2026-01-13
This version was automatically created when code was merged into the main branch.
### Changes
- Refactor to use template literals throughout and add helper function for padding
- Address code review feedback: use template literals and improve edge case handling
- Add distinctive background color and time counter for playing audio files
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.1.10
v1.1.10
Released on January 13, 2026
## Version 1.1.10
Released on 2026-01-13
This version was automatically created when code was merged into the main branch.
### Changes
- Disable file upload and directory creation options
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.1.9
v1.1.9
Released on January 13, 2026
## Version 1.1.9
Released on 2026-01-13
This version was automatically created when code was merged into the main branch.
### Changes
- Remove unused function and improve multi-line message display
- Fix XSS vulnerability: use DOM manipulation instead of innerHTML
- Address code review feedback: fix ARIA and use modern remove() method
- Replace all alert() calls with modern toast notification system
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.1.8
v1.1.8
Released on January 13, 2026
## Version 1.1.8
Released on 2026-01-13
This version was automatically created when code was merged into the main branch.
### Changes
- Delete .gitignore
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.1.7
v1.1.7
Released on January 13, 2026
## Version 1.1.7
Released on 2026-01-13
This version was automatically created when code was merged into the main branch.
### Changes
- Delete screenshots directory
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.1.6
v1.1.6
Released on January 13, 2026
## Version 1.1.6
Released on 2026-01-13
This version was automatically created when code was merged into the main branch.
### Changes
- Delete screenshot.png
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.1.5
v1.1.5
Released on January 13, 2026
## Version 1.1.5
Released on 2026-01-13
This version was automatically created when code was merged into the main branch.
### Changes
- Revise README with updated images and features
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.1.4
v1.1.4
Released on January 13, 2026
## Version 1.1.4
Released on 2026-01-13
This version was automatically created when code was merged into the main branch.
### Changes
- Update screenshots with all features enabled and rename/delete buttons visible
- Condense README from 900 to 165 lines (82% reduction) + Add Feature Screenshots
- Remove test demo files from repository
- Add updated screenshots showcasing key features
- Significantly shorten README.md from 900 to ~220 lines
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.1.3
v1.1.3
Released on January 12, 2026
## Version 1.1.3
Released on 2026-01-12
This version was automatically created when code was merged into the main branch.
### Changes
- Fix: Correct function call reference from anonymous to named function
- Docs: Improve inline documentation and clarify MIME type maintenance
- Refactor: Extract duplicate recursive functions to reduce code duplication
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.1.2
v1.1.2
Released on January 12, 2026
## Version 1.1.2
Released on 2026-01-12
This version was automatically created when code was merged into the main branch.
### Changes
- Add comprehensive file extension icon support including jpeg and many others
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.1.1
v1.1.1
Released on January 12, 2026
## Version 1.1.1
Released on 2026-01-12
This version was automatically created when code was merged into the main branch.
### Changes
- Bump version to 1.1.0
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.0.32
v1.0.32
Released on January 12, 2026
## Version 1.0.32
Released on 2026-01-12
This version was automatically created when code was merged into the main branch.
### Changes
- Fix race condition in video player error handling
- Add safeguard to space key handler to prevent interference with input fields
- Fix code review issues: update Font Awesome icon, remove deprecated key check, update browser compatibility
- Add video player with lightbox view and update README
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.0.31
v1.0.31
Released on January 12, 2026
## Version 1.0.31
Released on 2026-01-12
This version was automatically created when code was merged into the main branch.
### Changes
- Add Copilot instructions for repository
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.0.30
v1.0.30
Released on January 12, 2026
## Version 1.0.30
Released on 2026-01-12
This version was automatically created when code was merged into the main branch.
### Changes
- Implement immediate upload on file drop
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.0.29
v1.0.29
Released on January 12, 2026
## Version 1.0.29
Released on 2026-01-12
This version was automatically created when code was merged into the main branch.
### Changes
- Fix progress bar always visible - override accent bar transform
- Increase progress bar opacity for better visibility
- Fix play button and progress bar not updating - add missing link parameter
- Fix progress bar to only fill link area, not checkbox section
- Add validation to prevent invalid progress values
- Fix progress bar visibility - use CSS custom properties instead of dynamic styles
- Address code review: replace :has() selector with class, remove unused variable
- Fix progress bar update - clean up dead code and use dynamic style approach
- Update README with music player feature documentation and remove test files
- Fix audio preview interference - skip audio files in preview system
- Add music player functionality to audio files
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.0.28
v1.0.28
Released on January 12, 2026
## Version 1.0.28
Released on 2026-01-12
This version was automatically created when code was merged into the main branch.
### Changes
- Final refinements: improve error handling, add length check, and clarify constant naming
- Address code review feedback: improve reserved names validation, error handling, and response parsing
- Add create directory feature with UI, backend handler, and documentation
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.0.27
v1.0.27
Released on January 11, 2026
## Version 1.0.27
Released on 2026-01-11
This version was automatically created when code was merged into the main branch.
### Changes
- Delete testfile.txt
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.0.26
v1.0.26
Released on January 11, 2026
## Version 1.0.26
Released on 2026-01-11
This version was automatically created when code was merged into the main branch.
### Changes
- Delete test1_1.txt
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.0.25
v1.0.25
Released on January 11, 2026
## Version 1.0.25
Released on 2026-01-11
This version was automatically created when code was merged into the main branch.
### Changes
- Delete test1.txt
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.0.24
v1.0.24
Released on January 11, 2026
## Version 1.0.24
Released on 2026-01-11
This version was automatically created when code was merged into the main branch.
### Changes
- Delete myfile.txt
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.0.23
v1.0.23
Released on January 11, 2026
## Version 1.0.23
Released on 2026-01-11
This version was automatically created when code was merged into the main branch.
### Changes
- Delete document.pdf
- Delete .gitignore
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.0.22
v1.0.22
Released on January 11, 2026
## Version 1.0.22
Released on 2026-01-11
This version was automatically created when code was merged into the main branch.
### Changes
- Delete finaltest directory
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.0.21
v1.0.21
Released on January 11, 2026
## Version 1.0.21
Released on 2026-01-11
This version was automatically created when code was merged into the main branch.
### Changes
- Add folder detection with user-friendly error message
- Remove folder upload functionality - files only
- Fix "failed to fetch" error: use explicit URL and add better error handling
- Fix folder upload: use full_path field for directory structure preservation
- Add folder upload support with directory structure preservation
- Add max file size display and improve error messages for uploads
- Remove test files from tracking
- Add upload progress feedback with status indicators and progress bar
- Fix additional code review issues: validate parseInt, add safety checks, clarify security
- Remove test file from tracking
- Fix code review issues: continue statement, error messages, aria-hidden, and newlines
- Enable upload feature in config for testing
- Add file upload feature with drag-and-drop support
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.0.20
v1.0.20
Released on January 11, 2026
## Version 1.0.20
Released on 2026-01-11
This version was automatically created when code was merged into the main branch.
### Changes
- Fix mobile file size display to prevent hiding by action buttons
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.0.19
v1.0.19
Released on January 11, 2026
## Version 1.0.19
Released on 2026-01-11
This version was automatically created when code was merged into the main branch.
### Changes
- Remove audio and PDF preview thumbnails from file lister
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.0.18
v1.0.18
Released on January 11, 2026
## Version 1.0.18
Released on 2026-01-11
This version was automatically created when code was merged into the main branch.
### Changes
- Remove :not(:first-child) selector to apply padding to all items including first
- Exclude first child from padding to match hover behavior
- Add padding on touch devices to prevent file size from being hidden by buttons
- Fix rename and delete icons visibility on touch devices
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.0.17
v1.0.17
Released on January 10, 2026
## Version 1.0.17
Released on 2026-01-10
This version was automatically created when code was merged into the main branch.
### Changes
- Remove test files that were accidentally committed
- Reduce file row height to make pages shorter
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β
Version 1.0.16
v1.0.16
Released on January 10, 2026
## Version 1.0.16
Released on 2026-01-10
This version was automatically created when code was merged into the main branch.
### Changes
- Delete .gitignore
### Installation
Download the `index.php` file and place it in your web directory. It's a single self-contained file with no dependencies (except Font Awesome CDN for icons).
### Full Changelog
See commit history for detailed changes: https://github.com/BlindTrevor/SimplePhpFileLister/commits/main
View release details β