热搜词
发表于 2017-1-6 09:32:52 | 显示全部楼层 |阅读模式
此段代码可显示所在文件夹和子件夹下的所有图片,代码如下

<?php
$path=".";    //当前目录
function file_list($path){
$im_type=array('bmp','jpg','jpeg','png','gif');   //初始化图片文件扩展名
    if ($handle = opendir($path)) {
        while (false !== ($file = readdir($handle))) {
            if ($file != "." && $file != "..") {
                if (is_dir($path."/".$file)) {
                    echo $path.": ".$file."<br>";      //此行代码可显示所有子文件夹名称                                       
                  file_list($path."/".$file);
                } else {
if(strpos($file,'.png',1)||strpos($file,'.jpg',1)||strpos($file,'.ico',1)||strpos($file,'.gif',1)){
echo '<img src="'.$path.'/'.$file.'" /> <br />';
    }
                }
            }
        }
    }
}
echo file_list($path);
?>

注:经测试可用,能显示所在文件夹和子件夹下的图片

scandir  列目录下面的文件和目录
opendir 打开目录readdir  读取目录
is_dir()  判断给定文件名是否是一个目录

在PHP中 if ($file != "." && $file != "..")是什么意思

如果变量$file不是.并且不是..执行后面语句
应该用来判断目录的

全部评论2
灰儿 发表于 2017-1-6 17:19:27 | 显示全部楼层
这个用到的技术就php对文件的操作,文件遍历。这里有个我自己写当前目录和子目录文件遍历函数,代码如下。

<?php
//递归遍历文件夹,输出所有文件的路径
$path = ".";      //当前目录
function bianli($path){
    static $arr=array();
    $str="";
    if($open=opendir($path)){
        while($f=readdir($open)){
            $str=$path;
            if($f!='.' && $f!='..'){
                $str=$str."/".$f;
                if(is_dir($str)){
                    $i++;                           //记录图片总张数  
                    bianli($str);  
                }else{
                    $arr[]=$str;
                    //echo $str."";
                }         
            }         
        }
    }
     
    return $arr;
}

//遍历文件夹,不含子目录下的文件
function search_one_file($path){
    $arr=array();
    if($open=opendir($path)){
        while($f=readdir($open)){
            if($f!='.' && $f!='..'){
                $arr[]=$path."/".$f;
            }
        }
    }
    return $arr;
}

$bianli=bianli($path);
print_r($bianli);
echo '<br>';
echo '<br>';
$search_one_file=search_one_file($path);
print_r($search_one_file);
?>


回复

使用道具 举报

灰儿 发表于 2017-1-30 19:51:54 | 显示全部楼层
遍历文件夹及子文件夹所有文件 实例:

<html>

    <body>
        <?php           
$path=".";    //当前目录
            function traverse($path) {
                $current_dir = opendir($path);    //opendir()返回一个目录句柄,失败返回false
                while(($file = readdir($current_dir)) !== false) {    //readdir()返回打开目录句柄中的一个条目
                    $sub_dir = $path . DIRECTORY_SEPARATOR . $file;    //构建子目录路径
                    if($file == '.' || $file == '..') {
                        continue;
                    } else if(is_dir($sub_dir)) {    //如果是目录,进行递归
                        echo 'Directory ' . $file . ':<br>';
                        traverse($sub_dir);
                    } else {    //如果是文件,直接输出
                        echo 'File in Directory ' . $path . ': ' . $file . '<br>';
                    }
                }
            }


            traverse($path);
        ?>
    </body>
</html>


显示效果:
Directory 子目录名:
File in Directory .\子目录名: IMG_01.jpg
File in Directory .\子目录名: IMG_02.jpg
File in Directory .: IMG_1.jpg
File in Directory .: IMG_2.jpg
File in Directory .: index.php





回复

使用道具 举报

回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-11-25 02:35 , Processed in 0.185564 second(s), 27 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team