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 相关文章推荐
php中看实例学正则表达式
Dec 25 PHP
php部分常见问题总结
Mar 27 PHP
PHP通用分页类page.php[仿google分页]
Aug 31 PHP
C# Assembly类访问程序集信息
Jun 13 PHP
用php实现百度网盘图片直链的代码分享
Nov 01 PHP
使用PHP获取汉字的拼音(全部与首字母)
Jun 27 PHP
ThinkPHP权限认证Auth实例详解
Jul 22 PHP
php中静态类与静态变量用法的区别分析
Jan 15 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 PHP
PHP数据对象映射模式实例分析
Mar 29 PHP
在TP5数据库中四个字段实现无限分类的示例
Oct 18 PHP
PHP实现创建一个RPC服务操作示例
Feb 23 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 ZipArchive压缩函数详解实例
2013/11/06 PHP
详解cookie验证的php应用的一种SSO解决办法
2017/10/20 PHP
PHP获取访问设备信息的方法示例
2019/02/20 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
键盘KeyCode值列表汇总
2013/11/26 Javascript
jquery制作select列表双向选择示例代码
2014/09/02 Javascript
Bootstrap CSS组件之导航(nav)
2016/12/17 Javascript
javascript滚轮事件基础实例讲解(37)
2017/02/14 Javascript
Angular2管道Pipe及自定义管道格式数据用法实例分析
2017/11/29 Javascript
Node.js中你不可不精的Stream(流)
2018/06/08 Javascript
在vue项目中正确使用iconfont的方法
2018/09/28 Javascript
angular ng-model 无法获取值的处理方法
2018/10/02 Javascript
在webstorm开发微信小程序之使用阿里自定义字体图标的方法
2018/11/15 Javascript
JavaScript ECMA-262-3 深入解析(二):变量对象实例详解
2020/04/25 Javascript
纯JS开发baguetteBox.js响应式画廊插件
2020/06/28 Javascript
vuex分模块后,实现获取state的值
2020/07/26 Javascript
vue3.0封装轮播图组件的步骤
2021/03/04 Vue.js
对numpy和pandas中数组的合并和拆分详解
2018/04/11 Python
解决Django的request.POST获取不到内容的问题
2018/05/28 Python
在Python中关于使用os模块遍历目录的实现方法
2019/01/03 Python
Python中numpy模块常见用法demo实例小结
2019/03/16 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
Python定义一个函数的方法
2020/06/15 Python
全球知名提供各类营养保健品的零售商:Vitamin Shoppe
2016/10/09 全球购物
小米官方旗舰店:Xiaomi
2020/08/07 全球购物
为什么需要版本控制?
2013/08/08 面试题
超级搞笑检讨书
2014/01/15 职场文书
高中毕业自我评价
2014/02/08 职场文书
民生工程实施方案
2014/03/22 职场文书
医院信息公开实施方案
2014/05/09 职场文书
募捐倡议书怎么写
2014/05/14 职场文书
城管执法人员纪律作风整顿思想汇报
2014/09/13 职场文书
2015年大班保育员工作总结
2015/05/18 职场文书
python自动化操作之动态验证码、滑动验证码的降噪和识别
2021/08/30 Python
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL
Mysql中的触发器定义及语法介绍
2022/06/25 MySQL