code5 Random file


SUBMITTED BY: phpsnippets

DATE: Oct. 24, 2015, 10:27 a.m.

UPDATED: Jan. 16, 2016, 11:26 a.m.

FORMAT: Text only

SIZE: 1.5 kB

HITS: 1431

  1. function RandomFile($folder='', $extensions='.*'){
  2. // fix path:
  3. $folder = trim($folder);
  4. $folder = ($folder == '') ? './' : $folder;
  5. // check folder:
  6. if (!is_dir($folder)){ die('invalid folder given!'); }
  7. // create files array
  8. $files = array();
  9. // open directory
  10. if ($dir = @opendir($folder)){
  11. // go trough all files:
  12. while($file = readdir($dir)){
  13. if (!preg_match('/^\.+$/', $file) and
  14. preg_match('/\.('.$extensions.')$/', $file)){
  15. // feed the array:
  16. $files[] = $file;
  17. }
  18. }
  19. // close directory
  20. closedir($dir);
  21. }
  22. else {
  23. die('Could not open the folder "'.$folder.'"');
  24. }
  25. if (count($files) == 0){
  26. die('No files where found :-(');
  27. }
  28. // seed random function:
  29. mt_srand((double)microtime()*1000000);
  30. // get an random index:
  31. $rand = mt_rand(0, count($files)-1);
  32. // check again:
  33. if (!isset($files[$rand])){
  34. die('Array index was not found! very strange!');
  35. }
  36. // return the random file:
  37. return $folder . $files[$rand];
  38. }

comments powered by Disqus