列出特定目录中文件夹的防弹方法(与PHP 4兼容)
我需要一个简单的函数来列出给定目录中的所有文件夹(非递归)。目录将始终相同(我的主题目录的images文件夹) 我一直在使用下面的函数,但是当PHP版本<5时它会失败 我想我可以在PHP版本检查中包装函数。我只是想让功能尽可能防弹,同时又高效 由于它的任务如此之轻,我认为要求PHP5对于这个函数来说是过分了 此函数解析主题的images目录,并返回在其中找到的所有文件夹的数组。这就是它真正需要做的一切(这就是为什么我认为使用DirectoryIterator是过分的,因为它需要PHP5+)。此外,函数_exists测试不起作用列出特定目录中文件夹的防弹方法(与PHP 4兼容),php,filesystems,Php,Filesystems,我需要一个简单的函数来列出给定目录中的所有文件夹(非递归)。目录将始终相同(我的主题目录的images文件夹) 我一直在使用下面的函数,但是当PHP版本
function get_dirs($path = '.')
{
$dirs = array();
if(function_exists('DirectoryIterator'))
{
foreach (new DirectoryIterator($path) as $file)
{
if ($file->isDir() && !$file->isDot())
{
$dirs[] = $file->getFilename();
}
}
}
else
{
//exception
return array("theme1" => "theme1", "theme2" => "theme2", "theme3" => "theme3");
}
return $dirs;
}
目录类从PHP4开始就可用了,因此对于您的目的来说应该是理想的
手册页面本身有一些很好的示例,因此我不会在这里重复这些示例。目录类从PHP4开始就可用,因此对于您的目的来说应该是理想的
手册页面上有一些很好的示例,因此我不会在这里重复这些示例。PHP/4.0或更高版本:
<?php
$dh = opendir('/');
if($dh){
while(($item = readdir($dh)) !== false){
if( is_dir($dir . $item) ){
echo $item . "\n";
}
}
closedir($dh);
}
?>
<?php
foreach(glob('/*', GLOB_ONLYDIR) as $i){
echo $i . "\n";
}
?>
PHP/4.3或更高版本:
<?php
$dh = opendir('/');
if($dh){
while(($item = readdir($dh)) !== false){
if( is_dir($dir . $item) ){
echo $item . "\n";
}
}
closedir($dh);
}
?>
<?php
foreach(glob('/*', GLOB_ONLYDIR) as $i){
echo $i . "\n";
}
?>
PHP/4.0或更高版本:
<?php
$dh = opendir('/');
if($dh){
while(($item = readdir($dh)) !== false){
if( is_dir($dir . $item) ){
echo $item . "\n";
}
}
closedir($dh);
}
?>
<?php
foreach(glob('/*', GLOB_ONLYDIR) as $i){
echo $i . "\n";
}
?>
PHP/4.3或更高版本:
<?php
$dh = opendir('/');
if($dh){
while(($item = readdir($dh)) !== false){
if( is_dir($dir . $item) ){
echo $item . "\n";
}
}
closedir($dh);
}
?>
<?php
foreach(glob('/*', GLOB_ONLYDIR) as $i){
echo $i . "\n";
}
?>
function_exists('DirectoryIterator')返回false,因为DirectoryIterator不是函数,而是类。您需要类_exists()。函数_exists('DirectoryIterator')返回false,因为DirectoryIterator不是函数,而是类。您需要类_exists()。