-
Uses PHP recursive iterator classes and regex iterator class to recursively search directories for .php files.
-
Any file extension may be searched for, or a group of them by passing in regex. See help description (run dir2db.php in cmd)
-
Certain named directories may be excluded from the search, again by passing in regex through cmd (see help in dir2db.php)
Install via git clone https://github.com/RobertByrnes/dir2db.git
then cd into package root directory and run composer deploy-ini
Use dir2db.sql to install file_contents
table to a mySQL database.
For example run
mysql -u {$databaseUser} -p {$databaseName} < dir2db.sql
Edit ./private/local.ini to include correct database credentials.
In CMD/terminal type 'php dir2db.php', this will show the help menu:
/*** ARGUMENTS ***/
Required arguments:
-p path, e.g. c:/wamp/www/
Optional arguments:
-r regex, to filter file search to only include certain file extension. Default: /\.(?:php)$/
-e exclusions, directories ommited during search e.g. vendor|node_modules|private *Must include pipe*
-h help, prints this help message.";
php dir2db.php -p c:/wamp/www/repositories
php dir2db.php -p c:/wamp/www/repositories -r "/\.(?:txt)$/"
php dir2db.php -p c:/wamp/www/repositories -r "/\.(?:txt)$/" -e vendor|node_modules
php dir2db.php -p c:/wamp/www/repositories -r "/\.(?:txt|ini|sql)$/" -e vendor|node_modules
- Example 1 will search all directories within repositories for php files
- Example 2 will search for .txt file within repositories
- Example 3 as example 2, additionally excluding anything within directories named 'vendor' or 'node_modules'
- Example 4 demonstrates using the regex to include multiple file extensions
If you see a fatal exception - Allowed Memory Limit re-run your command explicity as shown below:
php .\dir2db.php -p c:/dir2db -r "/\.(?:jpg|png|pdf|php)$/" -e "vendor|node_modules"
php -d memory_limit=-1 .\dir2db.php -p c:/dir2db -r "/\.(?:jpg|png|pdf|php)$/" -e "vendor|node_modules"
The -d memory_limit=-1
will tell php to ignore the memory limit whilst executing this process.
- The following binary file types are supported:
- 'pdf', 'jpg', 'jpeg', 'png', 'gif', 'svg', 'ico', 'bmp', 'tiff', 'tif', 'webp'
- file contents for these files will be stored in the
binary_file_content
database column which is ofLONGBLOB
type. - Files not in this list are stored in the
file_content
column which is ofLONGTEXT
type.
The FileFinder trait uses PHP's recursive iterator classes to search for files in a directory structure returning an array of results.
To use the FileFinder trait, call the fileFinder
method with the following parameters:
$path
- The path to the directory you want to search$fileFilter
(optional) - A regex to find PHP file extensions$directoryFilter
(optional) - Directory names to exclude from the search
The fileFinder
method will then return an array of results.