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 php_openssl.dll的作用
Jul 01 PHP
Yii框架form表单用法实例
Dec 04 PHP
学习php设计模式 php实现备忘录模式(Memento)
Dec 09 PHP
超强多功能php绿色集成环境详解
Jan 25 PHP
PHP截取发动短信内容的方法
Jul 04 PHP
PHP实现的MD5结合RSA签名算法实例
Oct 07 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
Dec 08 PHP
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
Apr 03 PHP
微信JSSDK分享功能图文实例详解
Apr 08 PHP
laravel 判断查询数据库返回值的例子
Oct 11 PHP
Laravel如何实现自动加载类
Oct 14 PHP
php文件上传原理与实现方法详解
Dec 20 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新手上路(四)
2006/10/09 PHP
ThinkPHP中I(),U(),$this->post()等函数用法
2014/11/22 PHP
PHP针对中英文混合字符串长度判断及截取方法示例
2017/03/31 PHP
基于jQuery试卷自动排版系统
2010/07/18 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
2013/06/17 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
2014/04/03 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
详解vue添加删除元素的方法
2018/06/30 Javascript
浅谈js中的bind
2019/03/18 Javascript
微信小程序 拍照或从相册选取图片上传代码实例
2019/08/28 Javascript
vue的滚动条插件实现代码
2019/09/07 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛 5 24 iG VS DK
2014/05/26 DOTA
python爬虫正则表达式之处理换行符
2018/06/08 Python
django中使用POST方法获取POST数据
2019/08/20 Python
Python:type、object、class与内置类型实例
2019/12/25 Python
np.random.seed() 的使用详解
2020/01/14 Python
python求一个字符串的所有排列的实现方法
2020/02/04 Python
Python3中的f-Strings增强版字符串格式化方法
2020/03/04 Python
高考考python编程是真的吗
2020/07/20 Python
python中类与对象之间的关系详解
2020/12/16 Python
Marc Jacobs彩妆官网:Marc Jacobs Beauty
2017/07/03 全球购物
Nasty Gal英国:美国女性服饰销售网站
2021/03/02 全球购物
西班牙Polo衫品牌:Polo Club
2020/08/09 全球购物
教师自我鉴定
2013/12/13 职场文书
广告学毕业生求职信
2014/01/30 职场文书
体育教育毕业生自荐信
2014/06/29 职场文书
部队2015年终工作总结
2015/04/02 职场文书
2015年信访工作总结
2015/04/07 职场文书
2015年房地产销售工作总结
2015/04/20 职场文书
惊天动地观后感
2015/06/10 职场文书
结婚主持人致辞
2015/07/28 职场文书
教师理论学习心得体会
2016/01/21 职场文书
html+css实现分层金字塔的实例
2021/06/02 HTML / CSS
python数据处理之Pandas类型转换
2022/04/28 Python
Django数据库(SQlite)基本入门使用教程
2022/07/07 Python
Pygame游戏开发之太空射击实战敌人精灵篇
2022/08/05 Python