我正在用 php 编写一个程序,它正在查看子目录的媒体目录,如果子目录至少有一个具有指定文件扩展名的特定文件,那么将为子目录打印一个隐藏/显示链接。如果单击隐藏/显示链接,将显示具有指定扩展名的文件的链接。我的代码在大多数情况下都有效,但是一旦找到包含指定文件扩展名的子文件夹并打印出来,在该子文件夹之后找到的任何文件夹都会被打印出来,无论它们是否包含我正在寻找的文件。这会导致打印出隐藏/显示链接,当我单击它时不会执行任何操作。我认为这可能与未能重置我的$content
变量有关,但如果我使用unset()
或将变量重置为零,它仍然不起作用。这是我的代码:
foreach($files as $folder){
//Looks for subdirectory in the wifi folder
//and checks for video files before proceeding
if(sizeof( $folder ) > 0) {
foreach (glob("../www/media/" . $folder . "/*", GLOB_BRACE) as $fileExt) {
$fileExtLC = pathinfo( strtolower($fileExt), PATHINFO_EXTENSION );
if($fileExtLC === "mp4" || $fileExtLC === "mov" || $fileExtLC === "3gp") {
$content = '1';
break;
}
}
if($content === '1'){
//print show/hide link for subdirectory here
//Search through subdirectories in media directory for
//video files and print links to screen
$direcPath2 = '../www/media/' . $folder .'/';
$dir_handle2 = @opendir($direcPath2) or die("Unable to open " . $direcPath2);
while($f2 = readdir($dir_handle2)){
$filesExten2 = pathinfo( strtolower($f2), PATHINFO_EXTENSION );
if($filesExten2 == "mov" || $filesExten2 == "mp4" || $filesExten2 == "3gp") {
//print link to files here
}
}
closedir($dir_handle2);
}
}
}