我有一个包含一些文件夹名称的文件夹,例如 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。
答案 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");