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 相关文章推荐
PHP4实际应用经验篇(8)
Oct 09 PHP
让PHP支持页面回退的两种方法[转]
Feb 14 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
Mar 01 PHP
php引用传值实例详解学习
Nov 06 PHP
PHP字符串的递增和递减示例介绍
Feb 11 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十)
Jun 24 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
Oct 27 PHP
thinkphp常见路径用法分析
Dec 02 PHP
php实现通用的从数据库表读取数据到数组的函数实例
Mar 21 PHP
PHP中生成UUID自定义函数分享
Jun 10 PHP
PHP截取发动短信内容的方法
Jul 04 PHP
PHP CURL与java http使用方法详解
Jan 26 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应用程序来获取Web服务器的状态信息
2006/10/09 PHP
15种PHP Encoder的比较
2007/03/06 PHP
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
2011/08/02 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
jQueryUI写一个调整分类的拖放效果实现代码
2012/05/10 Javascript
如何正确使用javascript 来进行我们的程序开发
2014/06/23 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
2014/10/17 Javascript
JS上传图片前实现图片预览效果的方法
2015/03/02 Javascript
基于jQuery实现的QQ表情插件
2015/08/25 Javascript
javascript实现添加附件功能的方法
2015/11/18 Javascript
vue通过style或者class改变样式的实例代码
2018/10/30 Javascript
Node.js如何优雅的封装一个实用函数的npm包的方法
2019/04/29 Javascript
详解nuxt 微信公众号支付遇到的问题与解决
2019/08/26 Javascript
解决vuex数据异步造成初始化的时候没值报错问题
2019/11/13 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
js实现div色块碰撞
2020/01/16 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
利用Vue的v-for和v-bind实现列表颜色切换
2020/07/17 Javascript
开始着手第一个Django项目
2015/07/15 Python
Python 备份程序代码实现
2017/03/06 Python
Python实现时钟显示效果思路详解
2018/04/11 Python
在Pycharm中自动添加时间日期作者等信息的方法
2019/01/16 Python
python实现手机销售管理系统
2019/03/19 Python
Python实用工具FuckIt.py介绍
2019/07/02 Python
Django 创建新App及其常用命令的实现方法
2019/08/04 Python
Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统
2019/09/05 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
美国婚戒购物网站:Anjays Designs
2017/06/28 全球购物
英国国家美术馆商店:National Gallery
2019/05/01 全球购物
仓库管理制度
2014/01/21 职场文书
家长会学生演讲稿
2014/04/26 职场文书
小学雷锋月活动总结
2014/07/03 职场文书
2015年化妆品销售工作总结
2015/05/11 职场文书
2015年幼儿园保育工作总结
2015/05/12 职场文书
九年级化学教学反思
2016/02/22 职场文书
排查并解决Oracle sysaux表空间异常增长
2022/04/20 Oracle