This article mainly introduces php's method of randomly reading files from folders, which can implement php's function of randomly reading files from a specified directory and setting parameters for file filtering, for more information about how php randomly reads files from folders, see the example in this article. Share it with you for your reference. The specific 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 was not found! Very strange! ');} // Return the random file: return $ folder. $ files [$ rand];} // Usage demonstration: // "jpg | png | gif" matches all files with these extensionsprint 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 that just // contain numbers (like backup.1, backup.2) print RandomFile ('test _ files/',' [0-9] + '); // returns backup.7
I hope this article will help you with php programming.