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 批量更新网页内容实现代码
Jan 05 PHP
PHP 使用MySQL管理Session的回调函数详解
Jun 21 PHP
解析thinkphp中的M()与D()方法的区别
Jun 22 PHP
如何在php中正确的使用json
Aug 06 PHP
PHP实现读取一个1G的文件大小
Aug 24 PHP
smarty表格换行实例
Dec 15 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
Apr 04 PHP
php 5.4 全新的代码复用Trait详解
Jan 05 PHP
php获得刚插入数据的id 的几种方法总结
May 31 PHP
PHP 爬取网页的主要方法
Jul 13 PHP
Laravel5.1 框架响应基本用法实例分析
Jan 04 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 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(1)
2006/10/09 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
PHP读取、解析eml文件及生成网页的方法示例
2017/09/04 PHP
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
2007/01/09 Javascript
关于实现代码语法标亮 dp.SyntaxHighlighter
2007/02/02 Javascript
JavaScript Distilled 基础知识与函数
2010/04/07 Javascript
getElementByIdx_x js自定义getElementById函数
2012/01/24 Javascript
基于jQuery的计算文本框字数的代码
2012/06/06 Javascript
js事件监听机制(事件捕获)总结
2014/08/08 Javascript
在linux中使用包管理器安装node.js
2015/03/13 Javascript
JS实现带缓冲效果打开、关闭、移动一个层的方法
2015/05/09 Javascript
js中flexible.js实现淘宝弹性布局方案
2020/06/23 Javascript
javascript 广告移动特效的实现代码
2016/06/25 Javascript
微信小程序开发探究
2016/12/27 Javascript
利用ES6的Promise.all实现至少请求多长时间的实例
2017/08/28 Javascript
layui中layer前端组件实现图片显示功能的方法分析
2017/10/13 Javascript
微信小程序实现上传word、txt、Excel、PPT等文件功能
2019/05/23 Javascript
vue中v-for循环选中点击的元素并对该元素添加样式操作
2020/07/17 Javascript
[01:10:24]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第一场 2月28日
2021/03/11 DOTA
使用Python编写基于DHT协议的BT资源爬虫
2016/03/19 Python
Python制作钉钉加密/解密工具
2016/12/07 Python
快速了解Python开发中的cookie及简单代码示例
2018/01/17 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
Django ORM 聚合查询和分组查询实现详解
2019/08/09 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
pycharm 更改创建文件默认路径的操作
2020/02/15 Python
如何使用python socket模块实现简单的文件下载
2020/09/04 Python
使用iframe+postMessage实现页面跨域通信的示例代码
2020/01/14 HTML / CSS
美国知名的在线旅游服务网站:Priceline
2016/07/23 全球购物
尼克松手表官网:Nixon手表
2019/03/17 全球购物
体育教师工作总结的自我评价
2013/10/10 职场文书
单位工作证明范文
2014/09/14 职场文书
再婚婚前财产协议书范本
2014/10/19 职场文书
父亲节寄语大全
2015/02/27 职场文书
评测 | 大屏显示带收音机的高端音箱,JBL TUNE2便携式插卡音箱实测
2021/04/24 无线电
在K8s上部署Redis集群的方法步骤
2021/04/27 Redis