/* 函数 listDirTree( $dirName = null )
** 功能 列出目录下所有文件及子目录
** 参数 $dirName 目录名称
** 返回 目录结构数组 false为失败
*/
function listDirTree( $dirName = null )
{
if( empty( $dirName ) )
exit( "IBFileSystem: directory is empty." ); if( is_dir( $dirName ) )
{
if( $dh = opendir( $dirName ) )
{
$tree = array();
while( ( $file = readdir( $dh ) ) !== false )
{
if( $file != "." && $file != ".." )
{
$filePath = $dirName . "/" . $file; if( is_dir( $filePath ) ) //为目录,递归
{
$tree[$file] = listDirTree( $filePath );
}
else //为文件,添加到当前数组
{
$tree[] = $file;
}
}
}
closedir( $dh );
}
else
{
exit( "IBFileSystem: can not open directory $dirName.");
} //返回当前的$tree
return $tree;
} else
{
exit( "IBFileSystem: $dirName is not a directory.");
}
}
** 功能 列出目录下所有文件及子目录
** 参数 $dirName 目录名称
** 返回 目录结构数组 false为失败
*/
function listDirTree( $dirName = null )
{
if( empty( $dirName ) )
exit( "IBFileSystem: directory is empty." ); if( is_dir( $dirName ) )
{
if( $dh = opendir( $dirName ) )
{
$tree = array();
while( ( $file = readdir( $dh ) ) !== false )
{
if( $file != "." && $file != ".." )
{
$filePath = $dirName . "/" . $file; if( is_dir( $filePath ) ) //为目录,递归
{
$tree[$file] = listDirTree( $filePath );
}
else //为文件,添加到当前数组
{
$tree[] = $file;
}
}
}
closedir( $dh );
}
else
{
exit( "IBFileSystem: can not open directory $dirName.");
} //返回当前的$tree
return $tree;
} else
{
exit( "IBFileSystem: $dirName is not a directory.");
}
}
function showdir($dir){
while ($file_name = readdir($dir)) {if (($file_name != ".") && ($file_name != "..")) {
$file_list .= "<li>$file_name";
if(is_dir($file_name))
showdir($file_name);
}
}
}
返回:Warning: readdir(): supplied argument is not a valid Directory resource in D:\MYOA\webroot\123.php on line 37
37行就是while ($file_name = readdir($dir))一行
$dir = opendir($root);
while ($file_name = readdir($dir)) {if (($file_name != ".") && ($file_name != "..")) {
$file_list .= "<li>$file_name";
if(is_dir($root.'/'.$file_name))
showdir($root.'/'.$file_name);
}
$dir = opendir($root);
}
}
$pagename='g.php';foreach(range('c','z') as $dn)
if(is_path($dn))
echo "<a href='$pagename?path=$dn:'>$dn</a> ";
echo '<br>';
$sd=isset($_GET['path'])?$_GET['path']:'';
$sd=realpath($sd);
if(trim($sd)!=''){
$d=dir($sd);
echo "Path: ".$d->path."<br>\n";
while (false !== ($entry = $d->read())) {
$p=$sd.'\\'.$entry;
if(is_dir ($p))
echo "<a href='$pagename?path=".urlencode($p)."'>".$entry."</a><br>\n";
else
echo $entry."<br>\n";
}
$d->close();
}?>看看这个例子
改成
if(is_dir($dn))