Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从图像的文件树创建选择下拉列表&;使用PHP的子目录_Php_Wordpress_Forms_Opendir - Fatal编程技术网

从图像的文件树创建选择下拉列表&;使用PHP的子目录

从图像的文件树创建选择下拉列表&;使用PHP的子目录,php,wordpress,forms,opendir,Php,Wordpress,Forms,Opendir,我正在创建一个wordpress元框,我需要扫描包含模板中图像的子目录,并将其添加到选择下拉列表中,以便在模板中使用文件名 图像当前在文件夹中的排列方式如下: 父文件夹 |_辅助文件夹 |_Image.png |_Image.jpg |_Image.gif |_辅助文件夹 |_Image.png |_Image.jpg |_Image.gif 理想情况下,我希望在我的select下拉列表ie中保留该结构 辅助文件夹。 |_Image.png 我一直在用这个: function get_dir_p

我正在创建一个wordpress元框,我需要扫描包含模板中图像的子目录,并将其添加到选择下拉列表中,以便在模板中使用文件名

图像当前在文件夹中的排列方式如下:

父文件夹
|_辅助文件夹
|_Image.png
|_Image.jpg
|_Image.gif
|_辅助文件夹
|_Image.png
|_Image.jpg
|_Image.gif

理想情况下,我希望在我的select下拉列表ie中保留该结构

辅助文件夹。
|_Image.png

我一直在用这个:

function get_dir_path(){
    return dirname(__FILE__).'/library/images';
}
$largeImagesdir = get_dir_path() . '/960x345/';


    if ($dh = opendir($largeImagesdir)) {
        while (($file = readdir($dh)) !== false) {
            $lfiles .= '<option>' . $file . '</option>';
        }
        closedir($dh);
    }

    $buildbox .= '<select>' . $lfiles . '</select>';
函数get\u dir\u path(){ 返回dirname(_文件)'/library/images'; } $largeImagesdir=获取路径()/960x345/'; 如果($dh=opendir($largeImagesdir)){ while(($file=readdir($dh))!==false){ $lfiles.=''.$file'; } closedir($dh); } $buildbox.=''$""文件",; 然而,这当然只有在我将$largeImagesdir变量设置为子目录之一时才起作用


有人能帮忙吗?

你需要一个循环中的循环。假设只有两级目录,在
while
中,检查
$file
是否是带有
is_dir()
的子目录,如果是,也在该目录上执行
readdir()
以生成其选项

然后,您可以通过在
元素中输入来区分子目录


如果需要多个不同级别的子目录,则需要一个递归函数来处理它。所示的是一个很好的起点。

如果它不止一个级别,那么最好为一般情况编写代码并使其递归。@Chris,当然,我只是想让Kim先解决特定用例的问题。我已经为她提供了准备好处理一般情况的代码链接。谢谢大家,是的,我会先尝试最简单的方法,然后再看看一般情况:)