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下MAIL的另一解决方案
Oct 09 PHP
dedecms模版制作使用方法
Apr 03 PHP
PHP中使用sleep造成mysql读取失败的案例和解决方法
Aug 21 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
Aug 21 PHP
php生成QRcode实例
Sep 22 PHP
Windows7下的php环境配置教程
Feb 28 PHP
Zend Framework框架Smarty扩展实现方法
Mar 22 PHP
php微信支付接口开发程序
Aug 02 PHP
php安装扩展mysqli的实现步骤及报错解决办法
Sep 23 PHP
PHP Class SoapClient not found解决方法
Jan 20 PHP
PHP设计模式之单例模式定义与用法分析
Mar 26 PHP
php中yii框架实例用法
Dec 22 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
使用PHPMyAdmin修复论坛数据库的图文方法
2012/01/09 PHP
php支付宝在线支付接口开发教程
2016/09/19 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
2019/04/10 PHP
AutoSave/自动存储功能实现
2007/03/24 Javascript
javascript 学习之旅 (1)
2009/02/05 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
jQuery中dequeue()方法用法实例
2014/12/29 Javascript
原生js实现日期联动
2015/01/12 Javascript
jquery实现很酷的网页顶部图标下拉菜单效果
2015/08/22 Javascript
jQuery带进度条全屏图片轮播特效代码分享
2020/06/28 Javascript
js改变css样式的三种方法推荐
2016/06/28 Javascript
JavaScript 函数节流详解及方法总结
2017/02/09 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
Vue2.x中的父组件传递数据至子组件的方法
2017/05/01 Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
2017/07/20 Javascript
Seajs源码详解分析
2019/04/02 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
浅谈javascript中的prototype和__proto__的理解
2019/04/07 Javascript
详解Nuxt.js中使用Element-UI填坑
2019/09/06 Javascript
layui form表单提交之后重新加载数据表格的方法
2019/09/11 Javascript
如何基于filter实现网站整体变灰功能
2020/04/17 Javascript
vue-axios同时请求多个接口 等所有接口全部加载完成再处理操作
2020/11/09 Javascript
python局部赋值的规则
2013/03/07 Python
python检查字符串是否是正确ISBN的方法
2015/07/11 Python
python实现应用程序在右键菜单中添加打开方式功能
2017/01/09 Python
Python 基础教程之str和repr的详解
2017/08/20 Python
python爬虫 使用真实浏览器打开网页的两种方法总结
2018/04/21 Python
Python如何发布程序的详细教程
2018/10/09 Python
Python 确定多项式拟合/回归的阶数实例
2018/12/29 Python
python3实现的zip格式压缩文件夹操作示例
2019/08/17 Python
解析html5 canvas实现背景鼠标连线动态效果代码
2019/06/17 HTML / CSS
接口的多继承会带来哪些问题
2015/08/17 面试题
数控专业推荐信范文
2013/12/02 职场文书
认识深刻的检讨书
2014/02/16 职场文书
初婚初育证明范本
2014/11/24 职场文书
公务员廉洁从政心得体会
2016/01/19 职场文书