我已经尝试了几种方法来在文件系统上使用RecursiveIteratorIterator忽略某些目录.

为了举例说明我想忽略以下目录:/ cache.

我的迭代器看起来像这样:

//$dirname is root

$directory = new RecursiveDirectoryIterator($dirname);

$mega = new RecursiveIteratorIterator($directory, RecursiveIteratorIterator::SELF_FIRST);

foreach ($mega as $fileinfo) {

echo $fileinfo;

}

我已经能够使用pathinfo忽略某些文件扩展名,例如这有效:

$filetypes = array("jpg", "png");

$filetype = pathinfo($fileinfo, PATHINFO_EXTENSION);

foreach ($mega as $fileinfo) {

if (!in_array(strtolower($filetype), $filetypes)) {

echo $fileinfo;

}

}

当我使用PATHINFO_DIRNAME(在数组中使用相应的目录路径)尝试它时,它不起作用,没有错误,它只是不忽略目录.

我也试过使用FilterIterator无济于事,现在我想也许我应该使用RegexIterator.

使用RecursiveIteratorIterator忽略目录的最简单,最有效的方法是什么?

实验没有用.

使用PATHINFO_DIRNAME

$dirignore = array("cache", "cache2");

$directory = new RecursiveDirectoryIterator($dirname);

$mega = new RecursiveIteratorIterator($directory, RecursiveIteratorIterator::SELF_FIRST);

$dirtype = pathinfo($fileinfo, PATHINFO_DIRNAME);

if (!in_array($dirtype), $dirignore)) {

echo $fileinfo; //no worky still echo directories

}

使用FilterIterator(不知道这是如何工作的)

class DirFilter extends FilterIterator

{

public function accept()

{

//return parent::current() != "..\cache\";

$file = $this->getInnerIterator()->current();

if ($file != "..\cache")

return $file->getFilename();

//also tried with same error as below

//return !preg_match('/\cache', $file->getFilename());

}

}

$directory= new RecursiveDirectoryIterator($dirname);

$directory = new DirFilter($directory);

$mega = new RecursiveIteratorIterator($directory, RecursiveIteratorIterator::SELF_FIRST);

// loop

Tis导致错误:需要RecursiveIterator或IteratorAggregate创建它的实例

php 忽略加载动态某个目录,php – 如何使用RecursiveIteratorIterator忽略目录?相关推荐

  1. php 忽略加载动态某个目录,限定某个目录禁止解析php 、限制user_agent 、php的配制文件、PHP的动态扩展模块...

    找到路径,然后对其进行配制: 设置时区:date.timezone 把它改成:date.timezone =Asia/Shanghai 或:date.timezone =Asia/Chongqing ...

  2. 软件库Library之静态库\动态库和静态加载\动态加载

    软件库Library之静态库\动态库和静态加载\动态加载 动态库之导入库 https://blog.csdn.net/wallaceli1981/article/details/5740718 * 动 ...

  3. Linux系统程序运行时加载动态库路径顺序

    程序运行时加载动态库路径顺序(Linux) 在linux系统中,如果程序需要加载动态库,它会按照一定的顺序(优先级)去查找: 链接时路径(Link-time path)和运行时路径(Run-time ...

  4. php无法加载dll插件,php无法加载动态库怎么办

    php无法加载动态库的解决办法:1.将PHP的集成包里的"libmySQL.dll"复制到system32目录下:2.将PHP的解压目录添加到PATH里:3.在Apache的配置文 ...

  5. sunPKCS11加载动态库(转)

    sunPKCS11加载动态库(转) http://www.cnblogs.com/sunfb/archive/2013/03/01/2938491.html 这篇文章不介绍具体的编程方法,而是针对PK ...

  6. tableview动态修改和删除_Ubuntu加载动态库失败的解决方案

    在ubuntu下代码编译通过的情况下,经常出现运行时加载动态库出错的情况.这些问题很琐碎,不具备任何技术含量,纯属耽误时间,这也是linux系统的通病,花里胡哨,故弄玄虚. 为了减少初学者在这种无意义 ...

  7. php7.2 加载pgsql驱动,PHP启动:无法加载动态库PGSQL - php

    我正在尝试使用运行Symfony 3.x: Ubuntu 16.04 PHP 7.0 NGinx 我想与我创建的PGSQL数据库进行交互,但出现此错误: PHP警告:PHP启动:无法加载动态库 '/u ...

  8. linux直接运行程序加载动态库失败,扣丁学堂Linux培训详解程序运行时加载动态库失败解决方法...

    今天扣丁学堂Linux培训老师给大家介绍一下关于Linux程序运行时加载动态库失败的解决方法,希望对同学们学习有所帮助,下面我们一起来看一下吧. Linux下不能加载动态库问题 当出现下边异常情况 . ...

  9. linux加载动态库问题

    当我们在linux系统引用动态库时,经常会遇到一个问题,加入我们需要的动态库没有在系统的默认目录下,我们编译时使用-L指定了动态库的路径,编译时没有问题,但是执行调用该动态库的可执行文件时,却提示找不 ...

  10. 使用Poco实现插件方式加载动态库

    动态库封装虚基类 //AbstractPlugin.h #ifndef __ABSTRACTPLUGIN_H__ #define __ABSTRACTPLUGIN_H__#include <st ...

最新文章

  1. torch tensor用法
  2. Struts2.x和Struts1.x的区别
  3. python类的调用关系_JAVA 查找类的所有引用关系(python实现)
  4. java enum.parse_java 枚举的简单使用(enum)
  5. 转-Apache kafka 工作原理介绍
  6. 用busybox制作并配置根文件系统
  7. 系统运维遇上了大救星,是什么让IT效率提高48%
  8. 在Linux下禁用IPv6的方法小结
  9. POJ 1472 Instant Complexity
  10. java nio 思维导图
  11. Centos7 制作系统iso镜像文件
  12. 【导数术】4.三次函数
  13. PVAJP计划:暨关于.Press全站使用VUE-AJAX-JSON-PYTHON的新规划
  14. HDU 5956 The Elder(斜率优化DP)
  15. Sublime Text3 配置LaTex编辑器
  16. VMware虚拟机屏幕大小(屏幕分辨率)调整
  17. Java方法创建及调用--------06
  18. 自如上线分期支付,租金贷发展受限后充分利用流量变现
  19. SpringCloud 微服务架构开源项目,适合接私活、毕业设计(附源码)
  20. 四因素解读金银跌势仍将继续

热门文章

  1. apache添加php支持
  2. Ubuntu下搭建C/C++开发环境
  3. oracle 学习笔记 flashback query
  4. VSTO/Excel: 获取Excel图表中的某个点的数据
  5. 微信小程序onReachBottom不触发
  6. 故障解决-CPU超频问题解决
  7. api下载文件三种方式
  8. 监听下拉框,当前选中值
  9. phpeclipse中操作svn
  10. mysql用 fifo 记录日志_Python学习第四十七天记录打call:mysqlclient操作MySQL关系型数据库...