php实现的遍历文件夹下所有文件,编辑删除


Posted in PHP onJanuary 05, 2010
<?php 
/* 
遍历文件夹; 功能:(a)可删除文件 (b)可编辑文本,网页文件 (c)可删除文件夹,前提是该文件夹为空 (d)可建立文件,文件夹,修改文件夹名称; 
lost63.com原创, 转载请注明出处. 交流QQ:35501547 
*/ 
$path=$DOCUMENT_ROOT; 
$path=str_replace("/","\\",$path); 
//指定文件夹 
$path=$path."\\"; 
if($_GET['folder']) 
{ 
$path.=$_GET['folder']."\\"; 
} 
//本页面路径,下面传回时将用到; 
$url=$_SERVER['PHP_SELF']; 
//如果是文件夹,将加上链接; 
function folder($path,$str) 
{ 
if(filetype($path.$str)=="dir") 
{ 
return "<a href=\"?folder=".$_GET['folder']."\\".$str."\">$str</a>"; 
}else{ 
return $str; 
} 
} 
switch($_GET['action']) 
{ 
case "del"; 
if($_GET['type']=="file") 
{ 
unlink($_GET['path']); 
}else{ 
rmdir($_GET['path']); 
} 
echo "<script type=\"text/javascript\">alert('恭喜,删除成功!');location.href=\"".$url."\";</script>"; 
break; 
case "edit"; 
if($_GET['type']=="file") 
{ 
$file=fopen($_GET['path'],"r"); 
while(!feof($file)) 
{ 
$result.=fgets($file,9999); 
} 
fclose($file); 
echo '<form name="form1" method="post" action="?action=editsave&path='.$_GET['path'].'&type='.$_GET['type'].'"> 
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> 
<tr> 
<td height="25" bgcolor="#99CC00">>><strong> 编辑文件</strong> > <a href="'.$url.'">返回</a></td> 
</tr> 
<tr> 
<td height="25" align="left" bgcolor="#FFFFCC">->文件名:'.$_GET['path'].'</td> 
</tr> 
<tr> 
<td align="center" bgcolor="#FFFFFF"><textarea name="textarea" cols="135" rows="20">'.$result.'</textarea></td> 
</tr> 
<tr> 
<td align="center" bgcolor="#FFFFFF"><input type="submit" name="Submit" value="提交"> 
<input type="reset" name="Submit2" value="重置"></td> 
</tr> 
</table> 
</form>'; 
}else{ 
echo '<form name="form1" method="post" action="?action=dir_rename&path='.$_GET['path'].'&type='.$_GET['type'].'"> 
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> 
<tr> 
<td height="25" bgcolor="#99CC00">>><strong> 新建文件</strong> > <a href="'.$url.'">返回</a></td> 
</tr> 
<tr> 
<td height="25" align="left" bgcolor="#FFFFCC">->文件夹更名: 
<input name="filename" type="text" value="'.$_GET['path'].'" size="50"></td> 
</tr> 
<tr> 
<td align="center" bgcolor="#FFFFFF"><input type="submit" name="Submit" value="提交"> 
<input type="reset" name="Submit2" value="重置"></td> 
</tr> 
</table> 
</form>'; 
} 
break; 
case "editsave"; 
$file=fopen($_GET['path'],"w"); 
fwrite($file,$_POST['textarea']); 
fclose($file); 
echo "<script type=\"text/javascript\">alert('恭喜,编辑成功!');location.href=\"".$url."\";</script>"; 
break; 
case "addfile"; 
echo '<form name="form1" method="post" action="?action=filesave&path='.$_GET['path'].'"> 
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> 
<tr> 
<td height="25" bgcolor="#99CC00">>><strong> 新建文件</strong> > <a href="'.$url.'">返回</a></td> 
</tr> 
<tr> 
<td height="25" align="left" bgcolor="#FFFFCC">->文件名: 
<input name="filename" type="text" value="'.$_GET['path'].'" size="50"></td> 
</tr> 
<tr> 
<td align="center" bgcolor="#FFFFFF"><textarea name="textarea" cols="135" rows="20">输入内容 
</textarea></td> 
</tr> 
<tr> 
<td align="center" bgcolor="#FFFFFF"><input type="submit" name="Submit" value="提交"> 
<input type="reset" name="Submit2" value="重置"></td> 
</tr> 
</table> 
</form>'; 
break; 
case "filesave"; 
//包含点则建立文件,否则建立文件夹 
if(strpos($_POST['filename'],".")) 
{ 
$file=fopen($_POST['filename'],"w"); 
fwrite($file,$_POST['textarea']); 
fclose($file); 
}else{ 
//文件夹若存在则退出,不存在则建立! 
if(file_exists($_POST['filename'])) 
{ 
exit; 
}else{ 
mkdir($_POST['filename']); 
} 
} 
echo "<script type=\"text/javascript\">alert('恭喜,".$_POST['filename']."建立成功!');location.href=\"".$url."\";</script>"; 
break; 
case "dir_rename"; 
rename($_GET['path'],$_POST['filename']); 
echo "<script type=\"text/javascript\">alert('恭喜,".$_POST['filename']."改名成功!');location.href=\"".$url."\";</script>"; 
break; 
default: 
$s=explode("\n",trim(`dir/b/o:gn $path`)); 
echo '<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> 
<tr> 
<td height="25" colspan="4" bgcolor="#99CC00">>><strong> 文件管理</strong> > <a href="?action=addfile&path='.$path.'">建立文件</a> > <a href="'.$url.'">返回</a></td> 
</tr> 
<tr> 
<td height="25" align="center" bgcolor="#FFFFCC">文件/文件夹</td> 
<td align="center" bgcolor="#FFFFCC">文件属性</td> 
<td align="center" bgcolor="#FFFFCC">文件大小</td> 
<td align="center" bgcolor="#FFFFCC">操作</td> 
</tr>'; 
foreach($s as $value) 
{ 
echo ' 
<tr> 
<td height="25" bgcolor="#FFFFFF">'.folder($path,$value).'</td> 
<td align="center" bgcolor="#FFFFFF">'.filetype($path.$value).'</td> 
<td align="right" bgcolor="#FFFFFF">'.round(filesize($path.$value)/1024).'kb</td> 
<td align="center" bgcolor="#FFFFFF"><a href="?action=edit&path='.$path.'\\'.$value.'&type='.filetype($path.$value).'">编辑</a> | <a href="?action=del&path='.$path.'\\'.$value.'&type='.filetype($path.$value).'" onClick="return confirm(\'确定删除->'.$value.'\');">删除</a></td> 
</tr>'; 
} 
echo "</table>"; 
break; 
} 
?>
PHP 相关文章推荐
一个颜色轮换的简单例子
Oct 09 PHP
PHP下10件你也许并不了解的事情
Sep 11 PHP
php cout&amp;lt;&amp;lt;的一点看法
Jan 24 PHP
php中explode与split的区别介绍
Oct 03 PHP
php中stream(流)的用法
Mar 25 PHP
Parse正式发布开源PHP SDK
Aug 11 PHP
PHP使用静态方法的几个注意事项
Sep 16 PHP
php实现的返回数据格式化类实例
Sep 22 PHP
php+mysql数据库查询实例
Jan 21 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
Feb 22 PHP
处理php自动反斜杠的函数代码
Jan 05 #PHP
php实现首页链接查询 友情链接检查的代码
Jan 05 #PHP
用php实现的获取网页中的图片并保存到本地的代码
Jan 05 #PHP
用PHP查询搜索引擎排名位置的代码
Jan 05 #PHP
PHP 批量更新网页内容实现代码
Jan 05 #PHP
PHP 存储文本换行实现方法
Jan 05 #PHP
PHP 将图片按创建时间进行分类存储的实现代码
Jan 05 #PHP
You might like
社区(php&amp;&amp;mysql)三
2006/10/09 PHP
php用户名的密码加密更安全的方法
2019/06/21 PHP
基于jQuery的淡入淡出可自动切换的幻灯插件
2010/08/24 Javascript
javascript和HTML5利用canvas构建猜牌游戏实现算法
2013/07/17 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
Jquery getJSON方法详细分析
2013/12/26 Javascript
批量修改标签css样式以input标签为例
2014/07/31 Javascript
JavaScript运行机制之事件循环(Event Loop)详解
2014/10/10 Javascript
jquery实现鼠标滑过显示提示框的方法
2015/02/05 Javascript
JavaScript类型系统之布尔Boolean类型详解
2016/06/26 Javascript
简单理解js的prototype属性及使用
2016/12/07 Javascript
vue+webpack中配置ESLint
2018/11/07 Javascript
详解如何理解vue的key属性
2019/04/14 Javascript
vue项目中mock.js的使用及基本用法
2019/05/22 Javascript
node解析修改nginx配置文件操作实例分析
2019/11/06 Javascript
浅谈TypeScript的类型保护机制
2020/02/23 Javascript
vue 根据选择的月份动态展示日期对应的星期几
2021/02/06 Vue.js
[55:42]VG vs VGJ.T 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
python获得linux下所有挂载点(mount points)的方法
2015/04/29 Python
Python中线程编程之threading模块的使用详解
2015/06/23 Python
win10系统中安装scrapy-1.1
2016/07/03 Python
Python如何读取MySQL数据库表数据
2017/03/11 Python
python读取txt文件,去掉空格计算每行长度的方法
2018/12/20 Python
澳大利亚UGG工厂直销:Australian Ugg Boots
2017/10/14 全球购物
澳大利亚家庭花园和DIY工具网店:VidaXL
2019/05/03 全球购物
.NET里面如何取得当前的屏幕分辨率
2012/12/06 面试题
人事主管的岗位职责
2013/11/16 职场文书
中文专业毕业生自荐书范文
2014/01/04 职场文书
《红军不怕远征难》教学反思
2014/04/14 职场文书
工程承诺书怎么写
2014/05/24 职场文书
县委党的群众路线教育实践活动工作情况报告
2014/10/25 职场文书
创先争优活动个人总结
2015/03/04 职场文书
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript
python ConfigParser库的使用及遇到的坑
2022/02/12 Python
微软官方消息,在 2023 年 4 月 11 日之后微软将不再为 Office 2013 和 Skype for Business 2015 提供安全更新
2022/04/21 数码科技
MySQL 原理与优化之Limit 查询优化
2022/08/14 MySQL