两个都一样。想实现的功能都一样,结果也一样都不行。目录点着点着就出错了。
第一个文件名为:PROBLEMCODEnew1.php,在该php目录下建文件夹test,再在test下建文件夹test2,test2无法浏览。
第一个:
<?php$path='./';if(isset($_GET['dir'])){
$path=$path.$_GET['dir'];
}$dh=opendir($path);
if($dh===false){
echo '打开出错';
exit;
}
while(($item = readdir($dh))!==false){
$list[]=$item;
}
print_r($list);
closedir($dh);
print_r($_SERVER);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<style>
td{
border:1px solid gray;
}
</style>
<body>
<h1>文件管理系统</h1>
<table>
<tr>
<td>序号</td>
<td>文件名</td>
<td>操作</td>
</tr>
<?php foreach ($list as $key => $value) { ?>
<tr>
<td><?php echo $key ?></td>
<td><?php echo $value ?></td>
<td><?php
 if(is_dir($path.$value) && ($value=='.')) {
  echo '<a href="PROBLEMCODEnew1.php?dir=',$value,'/">浏览</a>';
}elseif(is_dir($path.$value)) {
echo '<a href="PROBLEMCODEnew1.php?dir=',$value,'">浏览</a>';
}

?></td>
</tr>
<?php } ?>
</table>
</body>
</html>
第二个:
<?php
$path='./';
$url=$_SERVER['REQUEST_URI'];if(isset($_GET['dir'])){
$path=$path.'./'.$_GET['dir'];
}else{
$url=$url.'?dir=.';
}
$dh=opendir($path);
if($dh===false){
echo '打开出错';
exit;
}
$list=array();
while(($item=readdir($dh))!==false){
$list[]=$item;
}
closedir($dir);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
td{
border:1px solid gray;
}
</style>
</head>
<body>
<table>
<tr>
<td>序号</td>
<td>文件名</td>
<td>操作</td>
</tr>
<tr>
<?php foreach($list as $k=>$v) { ?>
<td><?php echo $k; ?></td>
<td><?php echo $v; ?></td>
<td><?php 
if(is_dir($path.'./'.$v)) {
echo '<a href="',$url.'/',$v,'">浏览</a>';
}else{
echo '<a href="./',$_GET['dir'],'/',$v,'">查看</a>';
}
 ?></td>
</tr>
<?php } ?>
</table>
</body>
</html>

解决方案 »

  1.   

    <?php$path='./';if(isset($_GET['dir'])){
    $path=$path.$_GET['dir'];
    }$dh=opendir($path);
    if($dh===false){
    echo '打开出错';
    exit;
    }
    while(($item = readdir($dh))!==false){
    $list[]=$item;
    }
    print_r($list);
    closedir($dh);
    print_r($_SERVER);
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title></title>
    </head>
    <style>
    td{
    border:1px solid gray;
    }
    </style>
    <body>
    <h1>文件管理系统</h1>
    <table>
    <tr>
    <td>序号</td>
    <td>文件名</td>
    <td>操作</td>
    </tr>
    <?php foreach ($list as $key => $value) { ?>
    <tr>
    <td><?php echo $key ?></td>
    <td><?php echo $value ?></td>
    <td><?php
     if(is_dir($path.'/'.$value) && ($value=='.')) {
      echo '<a href="PROBLEMCODEnew1.php?dir=',$path.'/'.$value,'/">浏览</a>';
    }elseif(is_dir($path.$value)) {
    echo '<a href="PROBLEMCODEnew1.php?dir=',$path.'/'.$value,'">浏览</a>';
    }

    ?></td>
    </tr>
    <?php } ?>
    </table>
    </body>
    </html>
      

  2.   

    <?php

    // 初始化地址
    $path = __DIR__;
    if(isset($_GET['dir'])){
    $path = $_GET['dir']; // 初始化当前要访问的地址
    } $isFile = false; // 初始化是否文件,默认不是文件 if(is_file($path)){ // 如果访问的是文件
    // 获取文件内容
    $content = file_get_contents($path);
    $isFile = true;
    } else {
    // 获取访问文件夹下面的目录
    // 打开访问文件夹
    $dh=opendir($path);
    if($dh===false){
    echo '打开出错';
    exit;
    }
    while(($item = readdir($dh))!==false){
    if($item == '.')continue; // 这个是本目录地址
    if($item == '..'){ // 上一页
    $list[]= array(
    'path' => dirname($path), // 获取上一层目录名称
    'fileName' => '上一页',
    );
    } else {
    $list[]= array(
    'path' => $path.'/'.$item,
    'fileName' => $item,
    );
    }
    }
    // 关闭访问地址
    closedir($dh);
    }
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <style>
        td{
            border:1px solid gray;
        }
    </style>
    <body>
        <h1>文件管理系统</h1>
    <?php 
    if($isFile){
    // 输出文件内容
    echo "文件内容:" . $content;
    echo '<a href="javascript:history.go(-1)">返回</a>';
    }else {
    // 输出列表
    ?>
            <table>
                <tr>
                    <td>序号</td>
                    <td>文件名</td>
                    <td>操作</td>
                </tr>
                <?php foreach ($list as $key => $value) { ?>
                <tr>
                    <td><?php echo $key ?></td>
                    <td><?php echo $value['fileName'] ?></td>
                    <td><?php echo '<a href="floor.php?dir='.$value['path'].'">浏览</a>';?></td>
                </tr>
                <?php } ?>
            </table>
    <?php }?>
    </body>
    </html>
      

  3.   

    上面那个文件名称发错了。<?php

    // 初始化地址
    $path = __DIR__;
    if(isset($_GET['dir'])){
    $path = $_GET['dir']; // 初始化当前要访问的地址
    } $isFile = false; // 初始化是否文件,默认不是文件 if(is_file($path)){ // 如果访问的是文件
    // 获取文件内容
    $content = file_get_contents($path);
    $isFile = true;
    } else {
    // 获取访问文件夹下面的目录
    // 打开访问文件夹
    $dh=opendir($path);
    if($dh===false){
    echo '打开出错';
    exit;
    }
    while(($item = readdir($dh))!==false){
    if($item == '.')continue; // 这个是本目录地址
    if($item == '..'){ // 上一页
    $list[]= array(
    'path' => dirname($path), // 获取上一层目录名称
    'fileName' => '上一页',
    );
    } else {
    $list[]= array(
    'path' => $path.'/'.$item,
    'fileName' => $item,
    );
    }
    }
    // 关闭访问地址
    closedir($dh);
    }
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <style>
        td{
            border:1px solid gray;
        }
    </style>
    <body>
        <h1>文件管理系统</h1>
    <?php 
    if($isFile){
    // 输出文件内容
    echo "文件内容:" . $content;
    echo '<a href="javascript:history.go(-1)">返回</a>';
    }else {
    // 输出列表
    ?>
            <table>
                <tr>
                    <td>序号</td>
                    <td>文件名</td>
                    <td>操作</td>
                </tr>
                <?php foreach ($list as $key => $value) { ?>
                <tr>
                    <td><?php echo $key ?></td>
                    <td><?php echo $value['fileName'] ?></td>
                    <td><?php echo '<a href="PROBLEMCODEnew1.php?dir='.$value['path'].'">浏览</a>';?></td>
                </tr>
                <?php } ?>
            </table>
    <?php }?>
    </body>
    </html>