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 if 想到的些问题
Mar 22 PHP
PHP获取类中常量,属性,及方法列表的方法
Apr 09 PHP
关于Appserv无法打开localhost问题的解决方法
Oct 16 PHP
初品cakephp 入门基础
Feb 16 PHP
php 文件上传实例代码
Apr 19 PHP
php简单操作mysql数据库的类
Apr 16 PHP
解决php表单重复提交实现方法
Sep 29 PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
Jul 13 PHP
php中foreach结合curl实现多线程的方法分析
Sep 22 PHP
php删除二维数组中的重复值方法
Mar 12 PHP
PHP获取访问设备信息的方法示例
Feb 20 PHP
PHP中->和=>的意思
Mar 31 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
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
php插入中文到sqlserver 2008里出现乱码的解决办法分享
2012/07/19 PHP
功能强大的PHP发邮件类
2016/08/29 PHP
PHP基于递归实现的约瑟夫环算法示例
2017/08/27 PHP
php删除二维数组中的重复值方法
2018/03/12 PHP
PHP删除数组中特定元素的两种方法
2019/02/28 PHP
PHP切割汉字的常用方法实例总结
2019/04/27 PHP
一些有用的JavaScript和jQuery的片段分享
2011/08/23 Javascript
jquery常用操作小结
2014/07/21 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
JS拖拽插件实现步骤
2015/08/03 Javascript
实例解析angularjs的filter过滤器
2016/12/14 Javascript
js实现网页定位导航功能
2017/03/07 Javascript
Vue 去除路径中的#号
2018/04/19 Javascript
Vue props用法详解(小结)
2018/07/03 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
Vue实现简易翻页效果源码分享
2018/11/08 Javascript
详解vuex 渐进式教程实例代码
2018/11/27 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
electron踩坑之remote of undefined的解决
2020/10/06 Javascript
vue 封装面包屑组件教程
2020/11/16 Javascript
python实现电子词典
2020/04/23 Python
Python开发微信公众平台的方法详解【基于weixin-knife】
2017/07/08 Python
Python实现html转换为pdf报告(生成pdf报告)功能示例
2019/05/04 Python
Django表单提交后实现获取相同name的不同value值
2020/05/14 Python
Pyinstaller 打包发布经验总结
2020/06/02 Python
一款纯css3实现简单的checkbox复选框和radio单选框
2014/11/05 HTML / CSS
HTML5安全介绍之内容安全策略(CSP)简介
2012/07/10 HTML / CSS
收银员的岗位职责范本
2014/02/04 职场文书
幼儿园保育员岗位职责
2014/04/13 职场文书
销售队伍口号
2014/06/11 职场文书
认错检讨书
2014/10/02 职场文书
2015年网管个人工作总结
2015/05/22 职场文书
安全生产会议制度
2015/08/06 职场文书
MySQL连接控制插件介绍
2021/09/25 MySQL
Win10 Anaconda安装python-pcl
2022/04/29 Servers