php如何读取某目录下的所有同类型文件

假设我Album文件夹里有许多XXX.jpg,YYY.jpg,ZZZ.png,aaa.txt如何读取后缀为jpg的文件总数谢谢了!我对PHP不熟用,现在要用... 假设我Album文件夹里有许多XXX.jpg, YYY.jpg, ZZZ.png, aaa.txt
如何读取后缀为jpg的文件总数
谢谢了!
我对PHP不熟用,现在要用
展开
 我来答
阳光上的桥
2015-12-09 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65813
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部

PHP使用函数opendir、readdir、closedir来实现文件夹的操作,下面以一个最基本的例子来作为入门介绍:

<?php
//获取某目录下所有文件、目录名(不包括子目录下文件、目录名)  
    $dir='C:/Users/';
    $handler = opendir($dir);  
    while (($filename = readdir($handler)) !== false) {//务必使用!==,防止目录下出现类似文件名“0”等情况  
        if ($filename != "." && $filename != "..") {  
                $files[] = $filename ;  
           }  
       }  
    }  
    closedir($handler);  
       
//打印所有文件名  
    foreach ($filens as $value) {  
        echo $value."<br />";  
    }  
?>

上面的代码显示c:\users文件夹里面的所有的文件和文件夹,忽略.和..两个特殊含义的文件夹,程序把所有文件和文件夹名称扫描保存到数组里面,然后显示。


如果你需要对文件进行过滤,例如只处理*.xls文件,可以在过滤.和..的地方添加代码。例如:

if (substr($filename,-4)=='.xls'){


当你理解了上面的代码之后,你就能编写扫描子文件夹、以及子 文件夹里面文件的方法了。基本思路是使用递归,下面我给出一个简单的例子:

function get_allfiles($path,&$files) {  
    if(is_dir($path)){  
        $dp = dir($path);  
        while ($file = $dp ->read()){  
            if($file !="." && $file !=".."){  
                get_allfiles($path."/".$file, $files);  
            }  
        }  
        $dp ->close();  
    }  
    if(is_file($path)){  
        $files[] =  $path;  
    }  
}  
     
function get_filenamesbydir($dir){  
    $files =  array();  
    get_allfiles($dir,$files);  
    return $files;  
}  
     
$filenames = get_filenamesbydir("c:/users/");  
//打印所有文件名,包括路径  
foreach ($filenames as $value) {  
    echo $value."<br />";  
}

这个例子使用dir类来编写,实际上用opendir、readdir、closedir来写也是相同的。

骑王子特斯拉
2015-07-29 · 知道合伙人软件行家
骑王子特斯拉
知道合伙人软件行家
采纳数:360 获赞数:2021
某度最佳知道合伙人

向TA提问 私信TA
展开全部

PHP的glob() 函数返回匹配指定模式的文件名或目录。

该函数返回一个包含有匹配文件 / 目录的数组。如果出错返回 false。

语法

glob(pattern,flags)

参数

   

描述

 file    
   必需。规定检索模式。    
 

 
size    
   可选。规定特殊的设定。


GLOB_MARK - 在每个返回的项目中加一个斜线

GLOB_NOSORT - 按照文件在目录中出现的原始顺序返回(不排序)

GLOB_NOCHECK - 如果没有文件匹配则返回用于搜索的模式

GLOB_NOESCAPE - 反斜线不转义元字符

GLOB_BRACE - 扩充 {a,b,c} 来匹配 'a','b' 或 'c'

GLOB_ONLYDIR - 仅返回与模式匹配的目录项

GLOB_ERR - 停止并读取错误信息(比如说不可读的目录),默认的情况下忽略所有错误


注释:GLOB_ERR 是 PHP 5.1 添加的。

例子 1

<?php
$a = glob("*.txt");
print_r(count($a));
?>

   

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
网购族长
2010-07-18 · TA获得超过1688个赞
知道小有建树答主
回答量:1400
采纳率:0%
帮助的人:1076万
展开全部
<?php

$files = glob('*.jpg'); // 其他文件做类似修改,比如 *.png, *.txt等。。有目录请添加绝对目录。比如:c:/album/*.jpg
echo 'total : ' , count($files); // $files是一个文件数组。

?>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式