php语言分别读取文件,php做的一道面试题,读取目录下的文件(以及心得)

本文介绍了一个PHP文件遍历工具类的实现方法,该工具类可以递归地获取指定目录下的所有文件及其路径,同时提供了选项来决定是否包含空文件夹及是否返回完整路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*

*  new getFile($_dir[,$_emptyDir,$_fileType]);

* @parma $_dir 是目录名称

* @parma $_emptyDir 是否获取空文件夹,选填,默认不获取,true则获取空文件夹

* @parma $_fileType 获取文件名称的类型,选填,默认获取只文件名称,true则获取带有路径的文件名称

**/

class getFiles {

private $_dir;

private $_emptyDir;

private $_fileType;

public $_files;

public function __construct($_dir,$_emptyDir = false,$_fileType = true) {

$this->_dir = $_dir;

$this->_emptyDir = $_emptyDir;

$this->_fileType = $_fileType;

if ($this->_emptyDir) {

$this->getFileEmpty($this->_dir,$this->_files);

} else {

$this->getFile($this->_dir,$this->_files);

}

}

//读取文件夹所有文件不包括空文件夹

private function getFile($_dir,&$_arr) {

if (!!$_dirs = opendir($_dir)) {

while (($_file=readdir($_dirs)) != false) {

if ($_file == '.' || $_file == '..') continue;

$_files = $_dir .'/'. $_file;

if (is_dir($_files)) {

$this->getFile($_files,$_arr);

} else {

if ($this->_fileType) {

$_arr[] = $_files;

} else {

$_arr[] = $_file;

}

}

}

}

closedir($_dirs);

}

//读取文件夹所有文件包括空文件夹

private function getFileEmpty($_dir,&$_arr) {

if (!!$_dirs = opendir($_dir)) {

while (($_file=readdir($_dirs)) != false) {

if ($_file == '.' || $_file == '..') continue;

$_files = $_dir .'/'. $_file;

if (is_dir($_files) && $this->isEmpty($_files)) {

$this->getFileEmpty($_files,$_arr);

} else {

if ($this->_fileType) {

$_arr[] = $_files;

} else {

$_arr[] = $_file;

}

}

}

}

closedir($_dirs);

}

//判断文件夹是否为空

private function isEmpty($_dir) {

if (!!$_dirs = opendir($_dir)) {

while (($_file=readdir($_dirs)) != false) {

if($_file != '.' && $_file != '..') {

closedir($_dirs);

return true;

break;

}

}

closedir($_dirs);

return false;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值