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 相关文章推荐
URL Rewrite的设置方法
Jan 02 PHP
PHP 作用域解析运算符(::)
Jul 27 PHP
PHP读取xml方法介绍
Jan 12 PHP
深入密码加salt原理的分析
Jun 06 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
Mar 17 PHP
不使用php api函数实现数组的交换排序示例
Apr 13 PHP
Codeigniter实现处理用户登录验证后的URL跳转
Jun 12 PHP
thinkphp中空模板与空模块的用法实例
Nov 26 PHP
php去除字符串中空字符的常用方法小结
Mar 17 PHP
浅谈PHP发送HTTP请求的几种方式
Jul 25 PHP
PHP实现类似题库抽题效果
Aug 16 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
Oct 21 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
FCKeditor添加自定义按钮
2008/03/27 PHP
一个PHP的远程图片抓取函数分享
2013/09/25 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
2016/09/11 PHP
thinkPHP简单调用函数与类库的方法
2017/03/15 PHP
php命令行模式代码实例详解
2021/02/26 PHP
用JS判断IE版本的代码 超管用!
2011/08/09 Javascript
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
js给onclick事件赋值,动态传参数实例解说
2013/03/28 Javascript
js点击事件链接的问题解决
2014/04/25 Javascript
js检验密码强度(低中高)附图
2014/06/05 Javascript
jQuery的缓存机制浅析
2014/06/07 Javascript
JavaScript获取网页中第一个链接ID的方法
2015/04/03 Javascript
bootstrapValidator.min.js表单验证插件
2017/02/09 Javascript
JavaScript常见事件对象与操作实例总结
2019/01/05 Javascript
Vue基于vuex、axios拦截器实现loading效果及axios的安装配置
2019/04/26 Javascript
详解vue2.0模拟后台json数据
2019/05/16 Javascript
微信小程序自定义底部弹出框功能
2020/11/18 Javascript
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
2020/11/20 Vue.js
pyqt4教程之实现半透明的天气预报界面示例
2014/03/02 Python
python实现端口转发器的方法
2015/03/13 Python
为Python的web框架编写前端模版的教程
2015/04/30 Python
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
Django管理员账号和密码忘记的完美解决方法
2018/12/06 Python
python中使用 xlwt 操作excel的常见方法与问题
2019/01/13 Python
使用Tensorboard工具查看Loss损失率
2020/02/15 Python
使用Django xadmin 实现修改时间选择器为不可输入状态
2020/03/30 Python
python构造IP报文实例
2020/05/05 Python
学生会副主席竞聘书
2014/03/31 职场文书
考核评语大全
2014/04/29 职场文书
优秀毕业生找工作自荐信
2014/06/23 职场文书
国际政治学专业推荐信
2014/09/26 职场文书
小学音乐教师个人工作总结
2015/02/05 职场文书
2015年绩效考核工作总结
2015/05/23 职场文书
秋菊打官司观后感
2015/06/03 职场文书
CSS3 制作的书本翻页特效
2021/04/13 HTML / CSS