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投票程序源码
Mar 11 PHP
UTF8编码内的繁简转换的PHP类
Jul 09 PHP
php设计模式之单例、多例设计模式的应用分析
Jun 30 PHP
php接口与接口引用的深入解析
Aug 09 PHP
PHP中鲜为人知的10个函数
Feb 28 PHP
php通过隐藏表单控件获取到前两个页面的url
Sep 09 PHP
PHP模拟asp中response类实现方法
Aug 08 PHP
项目中应用Redis+Php的场景
May 22 PHP
PHP快速推送微信模板消息
Apr 14 PHP
在 Laravel 项目中使用 webpack-encore的方法
Jul 21 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
Dec 13 PHP
Yii中特殊行为ActionFilter的使用方法示例
Oct 18 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
Apache, PHP在Windows 9x/NT下的安装与配置 (一)
2006/10/09 PHP
分享PHP入门的学习方法
2007/01/02 PHP
解析Linux下Varnish缓存的配置优化
2013/06/20 PHP
完美实现wordpress禁止文章修订和自动保存的方法
2014/11/03 PHP
PHP版QQ互联OAuth示例代码分享
2015/07/05 PHP
EasyUI的treegrid组件动态加载数据问题的解决办法
2011/12/11 Javascript
js 自制滚动条的小例子
2013/03/16 Javascript
js判断是否为ie的方法小结
2014/01/13 Javascript
jquery日历插件datepicker用法分析
2016/01/22 Javascript
jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)
2016/06/08 Javascript
浅谈js数组和splice的用法
2016/12/04 Javascript
使用 Vue.js 仿百度搜索框的实例代码
2017/05/09 Javascript
AngularJS 限定$scope的范围实例详解
2017/06/23 Javascript
使用JS实现导航切换时高亮显示的示例讲解
2018/08/22 Javascript
JavaScript this关键字指向常用情况解析
2020/09/02 Javascript
Python实现竖排打印传单手机号码易撕条
2015/03/16 Python
简单介绍Python中的filter和lambda函数的使用
2015/04/07 Python
Python数据类型详解(二)列表
2016/05/08 Python
Django如何防止定时任务并发浅析
2019/05/14 Python
python aiohttp的使用详解
2019/06/20 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
django queryset 去重 .distinct()说明
2020/05/19 Python
在主流系统之上安装Pygame的方法
2020/05/20 Python
Python字典dict常用方法函数实例
2020/11/09 Python
不同浏览器对CSS3和HTML5的支持状况
2009/10/31 HTML / CSS
德国低价购买灯具和家具网站:Style-home.de
2016/11/25 全球购物
瑞典时尚服装购物网站:Miinto.se
2017/10/30 全球购物
印度尼西亚手表和包包商店:Urban Icon
2019/12/12 全球购物
Linux管理员面试经常问道的相关命令
2014/12/12 面试题
材料化学应届生求职信
2013/10/09 职场文书
食品安全责任书
2014/04/15 职场文书
2015年置业顾问工作总结
2015/04/07 职场文书
什么是检讨书?检讨书的格式及范文
2019/11/05 职场文书
Python如何把不同类型数据的json序列化
2021/04/30 Python
浅谈Python从全局与局部变量到装饰器的相关知识
2021/06/21 Python