一个在线文件目录系统,大神看看代码错在哪里

都是这样子 2018-05-21 11:24:58
两个都一样。想实现的功能都一样,结果也一样都不行。目录点着点着就出错了。
第一个文件名为: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>
...全文
1138 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
honghuabin 2018-05-22
  • 打赏
  • 举报
回复
上面那个文件名称发错了。

<?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>
honghuabin 2018-05-22
  • 打赏
  • 举报
回复
<?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>
木秀猿林 2018-05-22
  • 打赏
  • 举报
回复
<?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>
都是这样子 2018-05-21
  • 打赏
  • 举报
回复
顶一下,来个人帮忙看看

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧