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 相关文章推荐
ip签名探针
Oct 09 PHP
PHP has encountered an Access Violation
Jan 15 PHP
php 从数据库提取二进制图片的处理代码
Sep 09 PHP
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
Apr 07 PHP
使用php发送有附件的电子邮件-(PHPMailer使用的实例分析)
Apr 26 PHP
Php连接及读取和写入mysql数据库的常用代码
Aug 11 PHP
php中simplexml_load_file函数用法实例
Nov 12 PHP
PHP substr()函数参数解释及用法讲解
Nov 23 PHP
PHP的PDO预定义常量讲解
Jan 24 PHP
php+mysql开发中的经验与常识小结
Mar 25 PHP
Yii框架操作cookie与session的方法实例详解
Sep 04 PHP
laravel 实现用户登录注销并限制功能
Oct 24 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 应用程序安全防范技术研究
2009/09/25 PHP
PHP命名空间(Namespace)的使用详解
2013/05/04 PHP
解析php如何将日志写进syslog
2013/06/28 PHP
php json_encode()函数返回json数据实例代码
2014/10/10 PHP
JavaScript 仿关机效果的图片层
2008/12/26 Javascript
jquery validate使用攻略 第四步
2010/07/01 Javascript
异步加载script的代码
2011/01/12 Javascript
js事件监听器用法实例详解
2015/06/01 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
2016/06/25 Javascript
浅谈JsonObject中的key-value数据解析排序问题
2017/12/06 Javascript
webpack-mvc 传统多页面组件化开发详解
2019/05/07 Javascript
解决layer弹出层msg的文字不显示的问题
2019/09/11 Javascript
Vue 中使用富文本编译器wangEditor3的方法
2019/09/26 Javascript
vue自动化路由的实现代码
2019/09/30 Javascript
JavaScript实现留言板案例
2020/03/17 Javascript
nuxt 服务器渲染动态设置 title和seo关键字的操作
2020/11/05 Javascript
Python lxml模块安装教程
2015/06/02 Python
实例讲解Python中global语句下全局变量的值的修改
2016/06/16 Python
Python实现通过文件路径获取文件hash值的方法
2017/04/29 Python
Python遍历numpy数组的实例
2018/04/04 Python
PyQT实现多窗口切换
2018/04/20 Python
浅析Python数据处理
2018/05/02 Python
浅述python2与python3的简单区别
2018/09/19 Python
详解Python3中ceil()函数用法
2019/02/19 Python
Python神奇的内置函数locals的实例讲解
2019/02/22 Python
Python3.4解释器用法简单示例
2019/03/22 Python
PyQt5组件读取参数的实例
2019/06/25 Python
pytorch: Parameter 的数据结构实例
2019/12/31 Python
Python简单实现区域生长方式
2020/01/16 Python
英国最大的宝石首饰超市:QP Jewellers
2018/09/23 全球购物
入党思想汇报
2014/01/05 职场文书
求职意向书
2014/04/01 职场文书
教师业务培训方案
2014/05/01 职场文书
助人为乐模范事迹材料
2014/06/02 职场文书
党的群众路线教育实践活动教师自我剖析材料
2014/10/09 职场文书
小学生一年级(书信作文)
2019/08/13 职场文书