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


Posted in PHP onJune 01, 2015

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

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];
}

//用法演示:
// "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 that just 
// contain numbers (like backup.1, backup.2)
print RandomFile('test_files/','[0-9]+');
// returns backup.7

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
C# Assembly类访问程序集信息
Jun 13 PHP
PHP文件操作实现代码分享
Sep 01 PHP
php生成静态文件的多种方法分享
Jul 17 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
Dec 25 PHP
PHP类中的魔术方法(Magic Method)简明总结
Jul 08 PHP
跟我学Laravel之请求与输入
Oct 15 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
Apr 03 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
Dec 09 PHP
详解EventDispatcher事件分发组件
Dec 25 PHP
thinkphp 验证码 的使用小结
May 07 PHP
swoole_process实现进程池的方法示例
Oct 29 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
Dec 12 PHP
php计算整个目录大小的方法
Jun 01 #PHP
php获取系统变量方法小结
May 29 #PHP
typecho插件编写教程(六):调用接口
May 28 #PHP
PHP cURL初始化和执行方法入门级代码
May 28 #PHP
php支持中文字符串分割的函数
May 28 #PHP
typecho插件编写教程(五):核心代码
May 28 #PHP
php实现paypal 授权登录
May 28 #PHP
You might like
PHP 危险函数全解析
2009/09/09 PHP
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
2014/11/29 PHP
php支持中文字符串分割的函数
2015/05/28 PHP
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
2017/06/07 PHP
PHP面向对象程序设计重载(overloading)操作详解
2019/06/13 PHP
Javascript 写的简单进度条控件
2008/01/22 Javascript
javascript 遍历验证所有文本框的值
2009/08/27 Javascript
分享我对JS插件开发的一些感想和心得
2016/02/04 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
2017/02/08 Javascript
vue.js使用v-pre与v-html输出HTML操作示例
2018/07/07 Javascript
更强大的vue ssr实现预取数据的方式
2019/07/19 Javascript
js屏蔽F12审查元素,禁止修改页面代码等实现代码
2020/10/02 Javascript
[47:52]DOTA2-DPC中国联赛正赛 iG vs LBZS BO3 第二场 3月4日
2021/03/11 DOTA
推荐11个实用Python库
2015/01/23 Python
简单学习Python time模块
2016/04/29 Python
windows下python连接oracle数据库
2017/06/07 Python
python用pickle模块实现“增删改查”的简易功能
2017/06/07 Python
详解python里使用正则表达式的分组命名方式
2017/10/24 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
python更改已存在excel文件的方法
2018/05/03 Python
java中两个byte数组实现合并的示例
2018/05/09 Python
Python爬虫包BeautifulSoup简介与安装(一)
2018/06/17 Python
python 制作自定义包并安装到系统目录的方法
2018/10/27 Python
pygame游戏之旅 添加游戏暂停功能
2018/11/21 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
2019/08/10 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
2020/01/16 Python
西班牙太阳镜品牌:Hawkers
2018/03/11 全球购物
蔻驰法国官网:COACH法国
2018/11/14 全球购物
意大利咖啡、浓缩咖啡和浓缩咖啡机:illy caffe
2019/03/20 全球购物
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
Java语言程序设计测试题选择题部分
2014/04/03 面试题
自考毕业生自我鉴定
2013/11/04 职场文书
2014年国培研修感言
2014/03/09 职场文书
2015年高三年级组工作总结
2015/07/21 职场文书
2016年九九重阳节活动总结
2016/04/01 职场文书