This article illustrates how PHP randomly reads files from a folder. Share to everyone for your reference. The implementation method is as follows:
function Randomfile ($folder = ', $extensions = '. * ') {//fix path: $folder = Trim ($folder); $folder = ($folder = = ")?
'./': $folder;
Check Folder:if (!is_dir ($folder)) {die (' Invalid folder given! ');}
Create files Array $files = array (); Open Directory if ($dir = @opendir ($folder)) {//Go trough all files:while ($file = Readdir ($dir)) {if (!preg_match ('/^\.+$/', $file) and Preg_match ('/\. $extensions. ')
$/', $file)) {//Feed the array: $files [] = $file;
}//Close directory Closedir ($DIR);
else {die (' could not open the folder '. $folder. ' ");
} if (count ($files) = = 0) {die (' No files where found:-(');
}//Seed random Function:mt_srand (double) microtime () *1000000);
Get an random index: $rand = Mt_rand (0, Count ($files)-1);
Check Again:if (!isset ($files [$rand])) {die (' Array index ' not found! very strange! '); }//Return the RandoM File:return $folder.
$files [$rand];
//Usage Demo://"jpg|png|gif" matches all files with these extensions print randomfile (' test_images/', ' jpg|png|gif ');
Returns Test_07.gif//". *" matches all extensions (all files) print randomfile (' test_files/', '. * '); Returns Foobar_1.zip//"[0-9]+" matches all extensions so just//contain numbers (like BACKUP.1, BACKUP.2) print R
Andomfile (' test_files/', ' [0-9]+ ');
Returns BACKUP.7
I hope this article will help you with your PHP programming.