PHP SPL笔记

PHP SPL

  • SPL是Standard PHP Library(PHP标准库)的缩写。
  • PHP SPL笔记

实例

  1. 使用 SPL 的迭代器寻找指定目录中的图片文件的例子。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?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('/home/images') as $item) {
echo $item . PHP_EOL;
}
?>