我创建了这个函数来根据扩展名搜索和/或显示文件,或者在文件名中搜索字符串出现。当然,欢迎任何评论或增强功能。我很快就会更新此功能。
用法:list_files([字符串], [字符串], [整数 1 | 0], [整数 1 | 0]);
搜索扩展名:list_files([字符串], [字符串], [0], [整数 1 | 0]);
返回数组:$myArray = list_files([字符串], [字符串], [0], [0]);
输出结果:list_files([字符串], [字符串], [0], [1]);
搜索字符串出现次数:list_files([字符串], [字符串], [1], [整数 1 | 0]);
返回数组:$myArray = list_files([字符串], [字符串], [1], [0]);
输出结果:list_files([字符串], [字符串], [1], [1]);
<?php
function list_files($directory, $stringSearch, $searchHandler, $outputHandler) {
$errorHandler = false;
$result = array();
if (! $directoryHandler = @opendir ($directory)) {
echo ("<pre>\n错误:目录 \"$directory\" 不存在!\n</pre>\n");
return $errorHandler = true;
}
if ($searchHandler === 0) {
while (false !== ($fileName = @readdir ($directoryHandler))) {
if(@substr ($fileName, - @strlen ($stringSearch)) === $stringSearch) {
@array_push ($result, $fileName);
}
}
}
if ($searchHandler === 1) {
while(false !== ($fileName = @readdir ($directoryHandler))) {
if(@substr_count ($fileName, $stringSearch) > 0) {
@array_push ($result, $fileName);
}
}
}
if (($errorHandler === true) && (@count ($result) === 0)) {
echo ("<pre>\n错误:未找到文件类型 \"$fileExtension\"!\n</pre>\n");
}
else {
sort ($result);
if ($outputHandler === 0) {
return $result;
}
if ($outputHandler === 1) {
echo ("<pre>\n");
print_r ($result);
echo ("</pre>\n");
}
}
}
?>