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 和 MySQL 基础教程(二)
Oct 09 PHP
深入解析php模板技术原理【一】
Jan 10 PHP
Windows下XDebug 手工配置与使用说明
Jul 11 PHP
PHP中的错误处理、异常处理机制分析
May 07 PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
Jun 12 PHP
PHP实现通过get方式识别用户发送邮件的方法
Jul 16 PHP
[原创]php简单隔行变色功能实现代码
Jul 09 PHP
PHP实现的网站目录扫描索引工具
Sep 08 PHP
php 数组元素快速去重
May 05 PHP
Laravel学习基础之migrate的使用教程
Oct 11 PHP
ThinkPHP5.0框架结合Swoole开发实现WebSocket在线聊天案例详解
Apr 02 PHP
php根据地址获取百度地图经纬度的实例方法
Sep 03 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字符串长度计算 - strlen()函数使用介绍
2013/10/15 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
2019/06/14 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
JavaScript的变量作用域深入理解
2009/10/25 Javascript
使用jQuery实现dropdownlist的联动效果(sharepoint 2007)
2011/03/30 Javascript
这段js代码得节约你多少时间
2011/12/20 Javascript
ExtJS4 表格的嵌套 rowExpander应用
2014/05/02 Javascript
Javascript验证上传图片大小[前台处理]
2014/07/18 Javascript
js闭包的用途详解
2014/11/09 Javascript
JavaScript阻止浏览器返回按钮的方法
2015/03/18 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
2015/12/17 Javascript
基于jQuery代码实现圆形菜单展开收缩效果
2017/02/13 Javascript
Vue 实现展开折叠效果的示例代码
2018/08/27 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
2018/08/28 Javascript
记录vue做微信自定义分享的一些问题
2019/09/12 Javascript
vue Treeselect下拉树只能选择第N级元素实现代码
2020/08/31 Javascript
vue video和vue-video-player实现视频铺满教程
2020/10/30 Javascript
Python函数中定义参数的四种方式
2014/11/30 Python
简介二分查找算法与相关的Python实现示例
2015/08/26 Python
Python编程中装饰器的使用示例解析
2016/06/20 Python
浅谈配置OpenCV3 + Python3的简易方法(macOS)
2018/04/02 Python
解决Numpy中sum函数求和结果维度的问题
2019/12/06 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
2020/01/21 Python
python框架Django实战商城项目之工程搭建过程图文详解
2020/03/09 Python
南非最大的花卉和送礼服务:NetFlorist
2017/09/13 全球购物
亚马逊新加坡官方网站:Amazon.sg
2020/03/25 全球购物
通信专业个人自我鉴定
2013/10/21 职场文书
教学质量评估实施方案
2014/03/17 职场文书
元旦联欢会主持词
2014/03/26 职场文书
优秀员工推荐信
2014/05/10 职场文书
小学优秀班干部事迹材料
2014/05/25 职场文书
房地产项目合作意向书
2015/05/08 职场文书
基于Redis结合SpringBoot的秒杀案例详解
2021/10/05 Redis