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脚本的10个技巧(1)
Oct 09 PHP
给初学PHP的5个入手程序
Nov 23 PHP
关于在php.ini中添加extension=php_mysqli.dll指令的说明
Jun 14 PHP
深思 PHP 数组遍历的差异(array_diff 的实现)
Mar 23 PHP
php求正负数数组中连续元素最大值示例
Apr 11 PHP
codeigniter中view通过循环显示数组数据的方法
Mar 20 PHP
PHP加密解密函数详解
Oct 28 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
Jan 27 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
Yii框架实现对数据库的CURD操作示例
Sep 03 PHP
php+redis实现消息队列功能示例
Sep 19 PHP
关于laravel后台模板laravel-admin select框的使用详解
Oct 03 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实现根据银行卡号判断银行
2015/04/29 PHP
PHP中foreach()用法汇总
2015/07/02 PHP
php在数据库抽象层简单使用PDO的方法
2015/11/03 PHP
PHP中in_array函数使用的问题与解决办法
2016/09/11 PHP
PHP PDOStatement::execute讲解
2019/01/31 PHP
js原生appendChild的bug解决心得分享
2013/07/01 Javascript
Node.js 异步编程之 Callback介绍(一)
2015/03/30 Javascript
JavaScript中通过提示框跳转页面的方法
2016/02/14 Javascript
利用BootStrap弹出二级对话框的简单实现方法
2016/09/21 Javascript
bootstrap导航、选项卡实现代码
2016/12/28 Javascript
jQuery实现标签页效果实战(4)
2017/02/08 Javascript
Vue实现路由跳转和嵌套
2017/06/20 Javascript
详解Angular2学习笔记之Html属性绑定
2018/01/03 Javascript
vue element-ui table表格滚动加载方法
2018/03/02 Javascript
基于element-ui对话框el-dialog初始化的校验问题解决
2020/09/11 Javascript
Python数据类型详解(一)字符串
2016/05/08 Python
python如何在终端里面显示一张图片
2016/08/17 Python
pygame加载中文名mp3文件出现error
2017/03/31 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
2018/01/22 Python
python3.5基于TCP实现文件传输
2020/03/20 Python
对python中数组的del,remove,pop区别详解
2018/11/07 Python
PyQt5 QListWidget选择多项并返回的实例
2019/06/17 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
2019/12/18 Python
Python如何根据时间序列数据作图
2020/05/12 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
HTML5 Canvas的事件处理介绍
2015/04/24 HTML / CSS
HTML5各种头部meta标签的功能(推荐)
2017/03/13 HTML / CSS
美国农场鲜花速递:The Bouqs
2018/07/13 全球购物
仓管员岗位职责范文
2013/11/08 职场文书
售后客服工作职责
2014/06/16 职场文书
乡镇干部个人对照检查材料思想汇报
2014/10/04 职场文书
2014年组织委员工作总结
2014/12/01 职场文书
写给同事的离职感言
2015/08/04 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
Mysql数据库命令大全
2021/05/26 MySQL
浅谈JS的原型和原型链
2021/06/04 Javascript