当前位置:首页 > PHP教程 > php文件操作 > 列表

php从文件夹随机读取文件的方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-27 14:09:21 浏览: 评论:0 

这篇文章主要介绍了php从文件夹随机读取文件的方法,可实现php从指定的目录随机读取文件及设置参数进行文件过滤的功能,需要的朋友可以参考下。

本文实例讲述了php从文件夹随机读取文件的方法,分享给大家供大家参考,具体实现方法如下:

  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('/^\.+$/'$fileand 
  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.  
  39. //用法演示: 
  40. // "jpg|png|gif" matches all files with these extensions 
  41. print RandomFile('test_images/','jpg|png|gif'); 
  42. // returns test_07.gif 
  43. // ".*" matches all extensions (all files) 
  44. print RandomFile('test_files/','.*'); 
  45. // returns foobar_1.zip 
  46. // "[0-9]+" matches all extensions that just  
  47. // contain numbers (like backup.1, backup.2) 
  48. print RandomFile('test_files/','[0-9]+'); 
  49. // returns backup.7

Tags: php随机读取文件

分享到: