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模板引擎SMARTY
Oct 09 PHP
Apache+php+mysql在windows下的安装与配置图解(最新版)
Nov 30 PHP
php操作SVN版本服务器类代码
Nov 27 PHP
解析isset与is_null的区别
Aug 09 PHP
PHP7正式版测试,性能惊艳!
Dec 08 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
Oct 26 PHP
如何判断php mysqli扩展类是否开启
Dec 24 PHP
redirect_uri参数错误的解决方法(必看)
Feb 16 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
Mar 31 PHP
Yii2框架自定义类统一处理url操作示例
May 25 PHP
php+laravel依赖注入知识点总结
Nov 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&mysql(三)
2006/10/09 PHP
Zend的AutoLoad机制介绍
2012/09/27 PHP
php+memcache实现的网站在线人数统计代码
2014/07/04 PHP
thinkphp分页集成实例
2017/07/24 PHP
不错的一个日期输入 动态
2006/11/06 Javascript
javascript 屏蔽鼠标键盘的几段代码
2008/01/02 Javascript
javascript读取Xml文件做一个二级联动菜单示例
2014/03/17 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
jQuery使用$.ajax提交表单完整实例
2015/12/11 Javascript
利用Angularjs实现幻灯片效果
2016/09/07 Javascript
JS之if语句对接事件动作逻辑(详解)
2017/06/28 Javascript
javaScript字符串工具类StringUtils详解
2017/12/08 Javascript
详解VueJS应用中管理用户权限
2018/02/02 Javascript
angular4 共享服务在多个组件中数据通信的示例
2018/03/30 Javascript
从零开始实现Vue简单的Toast插件
2018/12/03 Javascript
基于vue框架手写一个notify插件实现通知功能的方法
2019/03/31 Javascript
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
使用Python编写一个最基础的代码解释器的要点解析
2016/07/12 Python
python 实现tar文件压缩解压的实例详解
2017/08/20 Python
python爬虫之模拟登陆csdn的实例代码
2018/05/18 Python
numpy的文件存储.npy .npz 文件详解
2018/07/09 Python
PyQt5实现五子棋游戏(人机对弈)
2020/03/24 Python
搞清楚 Python traceback的具体使用方法
2019/05/13 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
2019/06/14 Python
关于Numpy中的行向量和列向量详解
2019/11/30 Python
英国打印机墨水和碳粉商店:Printerinks
2017/06/30 全球购物
Optimalprint加拿大:在线打印服务
2020/04/03 全球购物
Prototype如何实现页面局部定时刷新
2013/08/06 面试题
战略合作协议书范本
2014/04/18 职场文书
2015年班长个人工作总结
2015/04/03 职场文书
2015年学校政教处工作总结
2015/05/26 职场文书
python使用openpyxl库读写Excel表格的方法(增删改查操作)
2021/05/02 Python
Python Django搭建文件下载服务器的实现
2021/05/10 Python
FP-growth算法发现频繁项集——构建FP树
2021/06/24 Python
java协程框架quasar和kotlin中的协程对比分析
2022/02/24 Java/Android
mysql如何查询连续记录
2022/05/11 MySQL