php foreach使用模板html

时间:2013-12-14 13:38:35

标签: php html foreach

我有一个包含一些文件夹名称的文件夹,例如 3个文件夹:

2012-2013,2013-2014,2014-2015

是一些PHP代码的方式,在我的PHP中显示名称文件夹,如下所示:

<option value="2012-2013">2012-2013</option>
<option value="2013-2014">2013-2014</option>
<option value="2014-2015">2014-2015</option>

直到我使用php-foreach在文件夹中使用html-template显示内容。 但我想直接显示东西而不使用数据文件夹中的模板,是吗? THX。

2 个答案:

答案 0 :(得分:2)

我想你想要递归目录中的文件夹。请在下面找到代码。

<?php
$folder_name = "c:\\your_folder\\";
$folders = scandir($folder_name);
echo '<select>';
foreach($folders as $folder){
    if (is_dir($folder_name . $folder)){
        if ($folder != '.' && $folder != '..')
            echo '<option value="' . $folder . '">' . $folder . '</option>';
    }
}
echo '</select>';
?>

答案 1 :(得分:0)

每次找到作为文件夹的文件时,都需要读取目录并打印选项标记。 首先,您需要通过提供主文件夹路径来打开文件处理程序到目录,而不是通过使用文件夹处理程序上的read方法在目录上进行操作。 通过使用“is_dir”功能,您可以确定文件是否是文件夹,如果是,则打印文件。 我添加了我的递归解决方案。

function printFolders($path = "", $c = 0) {

    if ( empty($path) || !is_dir($path) )
    {
        return false;
    }

    //Folder handler
    $handler = dir($path);

    //Read each file name inside the directory
    while(($file = $handler->read()) !== false)
    {

        // "." is the current folder and ".." is the parent folder
        // We skip those folders
        if ( $file == "." || $file == ".." )
        {
            continue;
        }

        // The current file path
        $filePath = $path . "/" . $file;

        if ( is_dir($filePath) )
        {
            //Just to make things more pretty
            for($i=0; $i<=$c; $i++) {echo "-";}
            //Printing the folder name
            echo $file . "<br>";
            //Calling the function again with the folder we found
            printFolders($filePath, $c+1);
        }
    }
}

printFolders("path/to/folder");