请给我一个解决方案,获取使用php不包含文件“input ...”的目录名称。我的文件夹结构如下:
Main Dir
namedirectory.php
Dir1
File1
input_1.txt
File
Dir2
File5
File6
Dir3
File1
input_2.txt
Dir4
File1
File2
Dir5
File1
File2
因为Dir1和Dir3有"输入.."文件,因此它将获得name = dir2,dir4,dir5。我有代码,但它不起作用。请帮我解决一下!
<?php
$dir ='/directory';
while($dirs = glob($dir . '/*', GLOB_ONLYDIR)) {
$dir .= '/*';
if(!$d) {
$d=$dirs;
} else {
$d=array_merge($d,$dirs);
}
foreach ($d as $d) {
if ($handle = opendir($d)) {
while ($entry = readdir($handle)) {
if (strpos($entry, "input") === FALSE) {
echo $d;
break;
}
}
closedir($handle);
}
}
}
?>
答案 0 :(得分:0)
使用tripple =因为PHP会将false
强制转换为0,这将是真的。
变化:
if (strpos($entry, "input") == FALSE) {
向
if (strpos($entry, "input") === FALSE) {
修改强>
$dir ='/directory';
while($dirs = glob($dir . '/*', GLOB_ONLYDIR)) {
$dir .= '/*';
if(!$d) {
$d=$dirs;
} else {
$d=array_merge($d,$dirs);
}
foreach ($d as $d) {
if ($handle = opendir($d)) {
$showDirectory = true;
while ($entry = readdir($handle)) {
if (strpos($entry, "input") !== FALSE) {
$showDirectory = false;
break;
}
}
if($showDirectory)
{
echo $d;
}
closedir($handle);
}
}
}