background image

PHP

教程 PHP SPL 标准库的用法(遍历目录,查找固定条件的

文件)

以下是对 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;