Php 如何显示目录和所有子目录中的文件?

Php 如何显示目录和所有子目录中的文件?,php,photo,photo-gallery,Php,Photo,Photo Gallery,当用户可以上传照片并选择类别时,我正在处理我的照片库。我的类别是图像/中的子目录。当用户未选择类别时,照片将存储在images/中。我想在gallery中显示所有照片(来自所有类别和其他类别),但现在我只显示这些照片,而不显示类别。有人能帮我吗? 下面是我的php代码片段 $fo=opendir("images"); if ($dh = opendir("images")){ $count = 1; while($file=readdir(

当用户可以上传照片并选择类别时,我正在处理我的照片库。我的类别是
图像/
中的子目录。当用户未选择类别时,照片将存储在
images/
中。我想在gallery中显示所有照片(来自所有类别和其他类别),但现在我只显示这些照片,而不显示类别。有人能帮我吗? 下面是我的php代码片段

 $fo=opendir("images");

        if ($dh = opendir("images")){

        $count = 1;

        while($file=readdir($fo)){


            if($file!="" && $file!="." && $file!=".."){
                        $image_path = "images/".$file;

                if(!is_dir($image_path)){
    ?>
                      <div class="gallery"> 

                <a href="<?= $image_path; ?>">
                <img src="<?= $image_path; ?>">

但是我不知道下一步要做什么

您应该使用递归DirectoryIterator,请参见

然后,您可以执行以下操作:

$folder = "path to your folder";

$files = new RecursiveIteratorIterator(
            new RecursiveDirectoryIterator($folder, RecursiveDirectoryIterator::SKIP_DOTS),
            RecursiveIteratorIterator::CHILD_FIRST
        );

        foreach ($files as $fileinfo) {

            // fileinfo is an object, see documentation for info
            $path = $fileinfo->getRealPath();

        }

创建一个
递归
函数以深入到所有文件夹和子文件夹,或者最好使用和的组合,非常感谢,它帮助我获取了所有文件,但当我想显示它们时,我只会得到一些空白字段,比如它们无法打开。你的意思是图像不会显示在浏览器中吗?图像是否位于Web服务器可以访问的文件夹中?php可以看到文件夹的内容并不意味着您的Web服务器允许访问该文件夹。是的,它们不会显示。现在问题出现了,当我只显示主目录中的照片时,一切正常。我授予了服务器权限,以便在浏览器中访问文件夹,检查“开发”窗格,查看“网络”选项卡,加载页面。您应该看到错误、加载失败。您看到了什么错误代码?这就是我得到的:加载资源失败:服务器响应状态为404(未找到)
$folder = "path to your folder";

$files = new RecursiveIteratorIterator(
            new RecursiveDirectoryIterator($folder, RecursiveDirectoryIterator::SKIP_DOTS),
            RecursiveIteratorIterator::CHILD_FIRST
        );

        foreach ($files as $fileinfo) {

            // fileinfo is an object, see documentation for info
            $path = $fileinfo->getRealPath();

        }