解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)
<?php
class RecursiveFileFilterIterator extends FilterIterator {
// 满足条件的扩展名
protected $ext = array('jpg','gif');
/**
* 提供 $path 并生成对应的目录迭代器
*/
public function __construct($path) {
parent::__construct(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)));
}
/**
* 检查文件扩展名是否满足条件
*/
public function accept() {
$item = $this->getInnerIterator();
if ($item->isFile() &&
in_array(pathinfo($item->getFilename(), PATHINFO_EXTENSION), $this->ext)) {
return TRUE;
}
}
}
// 实例化
foreach (new RecursiveFileFilterIterator('D:/history') as $item) {
echo $item . PHP_EOL;
}
相关推荐
-
php查找指定目录下指定大小文件的方法
本文实例讲述了php查找指定目录下指定大小文件的方法.分享给大家供大家参考.具体实现方法如下: php查找文件大小的原理是遍历目录然后再利用filesize来计算文件大小,然后我们再加一判断就可以了,下面整理了一些例子. 我们先来看遍历目录,代码如下: 复制代码 代码如下: function tree($directory) { $mydir = dir($directory); echo "<ul>n"; while($file = $mydir->r
-
php实现按文件名搜索文件的远程文件查找器
对于本地,我们可以利用windows自带的查找去进行查找,但是对于线上的话,如查找ftp空间里面文件,本程序是很有用的. 使用效果: php文件查找器源码: 复制代码 代码如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>php版文件查找(file search)</ti
-
php搜索文件程序分享
对于本地,我们可以利用windows自带的查找去进行查找,但是对于线上的话,如查找ftp空间里面文件,本程序是很有用的. php文件查找器源码: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>php版文件查找(file search)</title> </head&g
-
php下实现在指定目录搜索指定类型文件的函数
复制代码 代码如下: function bdir($dir,$typearr){ $ndir = scandir($dir); foreach ($ndir as $k => $v){ if ($v == '.' || $v == '..'){ continue; } if (filetype($dir.$v) == 'file'){ $arr = explode('.',$v); $type = end($arr); if (in_array($type,$typearr)){ echo $d
-
查找php配置文件php.ini所在路径的二种方法
通常php.ini的位置在: 复制代码 代码如下: /etc目录下或/usr/local/lib目录下. 如果你还是找不到php.ini或者找到了php.ini修改后不生效(其实是没找对),请使用如下办法: 1.新建php文件,写入如下代码 复制代码 代码如下: <?phpecho phpinfo();[code] 然后在浏览器访问该页面,搜索php.ini, 2.执行,(需要修改php为你自己的路径)[code]/usr/local/php/bin/php --ini 会显示php.ini所在
-
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
复制代码 代码如下: function write_naps_bot(){ $useragent=get_naps_bot(); // echoExit($useragent); if ($useragent=="false") return FALSE ; date_default_timezone_set("Asia/Shanghai"); $date=date("Y-m-d H:i:s"); $ip=$_SERVER[REMOTE_ADDR
-
php XPath对XML文件查找及修改实现代码
复制代码 代码如下: <?php /* <?xml version="1.0" encoding="utf-8"?> <article> <item> <title name="t1">11</title> <content>content1</content> <pubdate>2009-10-11</pubdate> </i
-
解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)
<?php class RecursiveFileFilterIterator extends FilterIterator { // 满足条件的扩展名 protected $ext = array('jpg','gif'); /** * 提供 $path 并生成对应的目录迭代器 */ public function __construct($path) { parent::__construct(new Recursiv
-
PHP SPL标准库中的常用函数介绍
PHP SPL标准库中提供了一些函数用来处理如自动加载.迭代器处理等. spl_autoload_extensions()添加spl_autoload()可加载的文件扩展名 spl_autoload_register()注册函数到SPL __autoload函数栈中. 复制代码 代码如下: /*test1.php*/ <?php class Test1 { } /*test2.lib.php*/ <?php class Test2 { } /*test.php*/ <?php /
-
PHP SPL标准库之接口(Interface)详解
PHP SPL标准库总共有6个接口,如下: 1.Countable 2.OuterIterator 3.RecursiveIterator 4.SeekableIterator 5.SplObserver 6.SplSubject 其中OuterIterator.RecursiveIterator.SeekableIterator都是继承Iterator类的,下面会对每种接口作用和使用进行详细说明. Coutable接口: 实现Countable接口的对象可用于count()函数计数. 复制代码
-
Python标准库shutil用法实例详解
本文实例讲述了Python标准库shutil用法.分享给大家供大家参考,具体如下: shutil模块提供了许多关于文件和文件集合的高级操作,特别提供了支持文件复制和删除的功能. 文件夹与文件操作 copyfileobj(fsrc, fdst, length=16*1024): 将fsrc文件内容复制至fdst文件,length为fsrc每次读取的长度,用做缓冲区大小 fsrc: 源文件 fdst: 复制至fdst文件 length: 缓冲区大小,即fsrc每次读取的长度 import shuti
-
Go标准库日志打印及同时输出到控制台与文件
目录 打印 log包 如何输出日志到文件? 如何同时输出到控制台和文件? 附:日志切割(按文件大小切割.按日期切割) 总结 打印 在使用go写一些小程序时,我们没必要引入额外的包,直接使用fmt标准包打印即可: import "fmt" func main() { fmt.Println("line1") fmt.Print("line2") fmt.Printf("line%d \n", 3) str1 := fmt.Spr
-
python 遍历目录(包括子目录)下所有文件的实例
如下所示: def list_all_files(rootdir): import os _files = [] list = os.listdir(rootdir) #列出文件夹下所有的目录与文件 for i in range(0,len(list)): path = os.path.join(rootdir,list[i]) if os.path.isdir(path): _files.extend(list_all_files(path)) if os.path.isfile(path):
-
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
PHP SPL中提供了SplFileInfo和SplFileObject两个类来处理文件操作. SplFileInfo用来获取文件详细信息: 复制代码 代码如下: $file = new SplFileInfo('foo-bar.txt'); print_r(array( 'getATime' => $file->getATime(), //最后访问时间 'getBasename' => $file->getBasename(), //获取无路径的basenam
-
PHP SPL标准库之SplFixedArray使用实例
SplFixedArray主要是处理数组相关的主要功能,与普通php array不同的是,它是固定长度的,且以数字为键名的数组,优势就是比普通的数组处理更快. 看看我本机的Benchmark测试: ini_set('memory_limit','12800M'); for($size = 10000; $size < 10000000; $size *= 4) { echo PHP_EOL . "Testing size: $size" . PHP_EOL; for($s = m
-
PHP SPL标准库之数据结构栈(SplStack)介绍
栈(Stack)是一种特殊的线性表,因为它只能在线性表的一端进行插入或删除元素(即进栈和出栈) SplStack就是继承双链表(SplDoublyLinkedList)实现栈. 类摘要如下: 简单使用如下: //把栈想象成一个颠倒的数组 $stack = new SplStack(); /** * 可见栈和双链表的区别就是IteratorMode改变了而已,栈的IteratorMode只能为: * (1)SplDoublyLinkedList::IT_MODE_LIFO | SplDoublyL
-
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
堆(Heap)就是为了实现优先队列而设计的一种数据结构,它是通过构造二叉堆(二叉树的一种)实现.根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆.二叉堆还常用于排序(堆排序). 如下:最小堆(任意节点的优先级不小于它的子节点) 看看PHP SplHeap的实现: 显然它是一个抽象类,最大堆(SplMaxHeap)和最小堆(SplMinHeap)就是继承它实现的.最大堆和最小堆并没有额外的方法 SplHeap的简单使用如下: class MySimpleHeap extends
随机推荐
- Swift心得笔记之字符串
- Bootstrap项目实战之子栏目资讯内容
- js学习总结之DOM2兼容处理重复问题的解决方法
- js实现登录框鼠标拖拽效果
- 记录asp.net网站是什么原因导致停止运行的代码
- destoon二次开发常用数据库操作
- Vue学习笔记进阶篇之单元素过度
- Android自定义控件简单实现侧滑菜单效果
- PHP面向对象概念
- 使用JSON.parse将json字符串转换成json对象的时候会出错
- java 使用URLDecoder和URLEncoder对中文进行处理
- jquery实现的V字形显示效果代码
- 利用soaplib搭建webservice详细步骤和实例代码
- SQLServer 数据库中如何保持数据一致性
- 安装SqlServer2005时版本变更检查 (警告)
- Intellij Mybatis连接Mysql数据库
- jQuery的Ajax的自动完成功能控件简要说明
- jquery+easeing实现仿flash的载入动画
- js继承的实现代码
- PHP表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法