如何编辑以下功能......
只允许链接文件,文件夹是否为h1标签?
例如,我想要的是输出
<h1>folder name</h1>
<a href="#">File.txt</a>
<a href="#">File.txt</a>
<a href="#">File.txt</a>
<h1>folder name</h1>
<a href="#">File.txt</a>
<a href="#">File.txt</a>
<a href="#">File.txt</a>
以下是我发现需要编辑的另一个Stackoverflow答案的PHP函数。
function listFolderFiles($dir){
$ffs = scandir($dir);
echo '<ol>';
foreach($ffs as $ff){
if($ff != '.' && $ff != '..'){
echo '<li>'.$ff;
if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff);
echo '</li>';
}
}
echo '</ol>';
}
我不确定如何“检测”$ ff变量是文件夹还是文件?
答案 0 :(得分:1)
这对你有用! Directorys位于h1
,文件位于a
个标签:
(我正在使用功能is_dir
进行检查,如果它是一个目录,如果它是我在h1
输出名称,否则输入{{1} }标签)
a
如果你不想在列表中使用它,请使用:
<?php
function listFolderFiles($dir){
$ffs = scandir($dir);
echo '<ol>';
foreach($ffs as $ff){
if($ff != '.' && $ff != '..'){
echo '<li>';
if(is_dir($dir.'/'.$ff))
echo "<h1>" . $ff . "</h1>";
else
echo "<a href=\"#\">" . $ff . "</a><br />";
if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff);
echo '</li>';
}
}
echo '</ol>';
}
?>
答案 1 :(得分:1)
使用Spl
$dir = new FilesystemIterator( __DIR__, FilesystemIterator::SKIP_DOTS );
foreach ($dir as $fileinfo) {
if( !$fileinfo->isDir()){
echo '<a href="#">'.$fileinfo->getFilename().'</a>';
}else{
echo '<h1>'.$fileinfo->getFilename().'</h1>';
}
}
尚未测试过。但它应该做的伎俩,这是OOP方式来做到这一点。好处是你可以绕过点的所有检查,如果你喜欢Windows上的“/”而不是“\”,那就有一个标志。
FilesystemIterator::UNIX_PATHS
标志是按位的,所以要使用多于一个你喜欢的。
$dir = new FilesystemIterator( __DIR__, FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS );
答案 2 :(得分:0)
在此部分中,您需要修改:
// If $ff is a directory
if(is_dir($dir.'/'.$ff)) {
// This is where you echo the folder name
echo '<h1>'.$ff.'</h1>';
// This will list what's in the directory
listFolderFiles($dir.'/'.$ff);
}
答案 3 :(得分:0)
$dir = scandir('your path');
foreach($dir as $d) {
if(is_file($d)) {
echo $d . ' is file<br>';
} else if(is_dir($d)) {
echo $d . ' is directory<br>';
}
}
只看php手册。