PHP基础示例:简单的在线文件管理
先截个图:
下面为代码部分,由于只有一个文件,所以就不折叠了。
<?php
//简单的在线文件管理 $path = "./";
$filelist=array("filesystem.php");//要过滤掉的文件 //一、根据action的信息值,做对应的操作
switch(@$_GET['action'])
{
case "del": //删除一个文件
unlink($_GET["filename"]);
break;
case "create": //创建一个文件
//1.获取要创建的文件名
$filename = trim($path,"/")."/".$_POST["filename"];
//2.判断文件是否已存在
if(file_exists($filename))
{
die("要创建的文件已存在!");
}
//3.创建这个文件
$f = fopen($filename,"w");
fclose($f);
break; case "edit": //编辑文件信息
//1.获取文件名
$filename=$_GET["filename"];
//2.读取文件的内容
$fileinfo= file_get_contents($filename);
break;
case "update": //修改文件信息
//1.获取信息:文件名,内容
$filename = $_POST["filename"];
$content = $_POST["content"];
//2.执行文件内容修改
file_put_contents($filename,$content);
break;
} //二、浏览指定目录下的文件 //1.判断path存在,并且是否是个目录
if(! file_exists($path) && is_dir($path))
{
die($path."目录无效!");
}
//2.输出表头信息
echo "<h3>{$path}目录下的文件信息<h3>";
echo "<h4><a href='filesystem.php?action=add'>创建文件</a></h4>";
echo "<table width='600' border='0'>";
echo "<tr bgcolor='#cccccc' align='left'>";
echo "<th>序号</th><th>名称</th><th>类型</th><th>大小</th><th>创建时间</th><th>操作</th>";
echo "</tr>"; //3.打开这个目录并遍历目录下面的所有文件
$dir = opendir($path);
if($dir)
{
$i=0;
//遍历目录中的文件,并输出文件的信息
while($f = readdir($dir))
{
if($f=="." || $f==".." || in_array($f,$filelist))
{
continue;//跳出本次循环,继续下一次遍历
}
$file = trim($path,"/")."/".$f;
$i++;
echo "<tr>";
echo "<td>{$i}</td>";
echo "<td>{$f}</td>";
echo "<td>".filetype($file)."</td>";
echo "<td>".filesize($file)."</td>";
echo "<td>".date("Y-m-d H:i:s",filectime($file))."</td>";
echo "<td><a href='filesystem.php?filename={$file}&action=del'>删除</a>
<a href='filesystem.php?filename={$file}&action=edit'>修改</a> </td>";
echo "</tr>";
}
closedir($dir);//关闭目录
}
echo "<tr bgcolor='#cccccc' align='left'><td colspan='6'> </td></tr>";
echo "</table>"; //三、判断是否需要文件表单,若需输出创建文件的表单框
if(@$_GET['action']=="add")
{
echo "<br/><br/><form action='filesystem.php?action=create' method='post'>";
echo "新建文件: <input type='text' name='filename' size='12'/>";
echo "<input type='submit' value='新建文件'>";
echo "</form>";
} //四、判断是否需要编辑文件表单,若需输出创建文件的表单框
if(@$_GET['action']=="edit")
{
echo "<br/><br/><form action='filesystem.php?action=update' method='post'>";
echo "<input type='hidden' name='filename' value='{$filename}'/> ";
echo "文件名: {$filename}<br/><br/>";
echo "文件内容:<textarea name='content' cols='40' row='6'>{$fileinfo}</textarea><br/>";
echo "<input type='submit' value='执行编辑'>";
echo "</form>";
}
PHP基础示例:简单的在线文件管理的更多相关文章
- Membership三步曲之入门篇 - Membership基础示例
Membership 三步曲之入门篇 - Membership基础示例 Membership三步曲之入门篇 - Membership基础示例 Membership三步曲之进阶篇 - 深入剖析Pro ...
- [转]Membership三步曲之入门篇 - Membership基础示例
本文转自:http://www.cnblogs.com/jesse2013/p/membership.html Membership三步曲之入门篇 - Membership基础示例 Members ...
- 开源作品-PHP写的在线文件管理工具(单文件绿色版)-SuExplorer_PHP_3_0
前言:项目开发过程中,网站一般部署到远程服务器,所以文件管理就不能和本机操作一样方便.通常文件管理是用ftp下载到本地,修改后再上传,或者远程登录到服务器进行修改.但是这些操作都依赖于复杂的第三方软件 ...
- ASP.NET Core 异常和错误处理 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 异常和错误处理 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 异常和错误处理 上一章节中,我们学习了 ASP.NET Cor ...
- php小项目-web在线文件管理器
php小项目-web在线文件管理器 一 项目结果相关视图 二 项目经验 通过简单的实现小项目,对php的文件相关操作更加熟悉,主要用于熟悉文件的相关操作 三 源代码下载地址 http://files. ...
- 【Remoting】.Net remoting方法实现简单的在线升级(上篇:更新文件)
一.前言: 最近做一个简单的在线升级Demo,使用了微软较早的.Net Remoting技术来练手. 简单的思路就是在服务器配置一个Remoting对象,然后在客户端来执行Remoting ...
- atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 。打开浏览服务器文件夹java .net php
atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 .打开浏览服务器文件夹java .net php 1. 环境:::项目java web,需要打开浏览服 ...
- Web 在线文件管理器学习笔记与总结(19)上传文件
dir.func.php 中添加方法: /* 上传文件 */ function uploadFile($fileInfo,$path,$allowExt = array('jpg','jpeg','p ...
- Web 在线文件管理器学习笔记与总结(17)复制文件 (18)剪切文件
(17)复制文件 ① 复制文件通过copy($src,$dst) 来实现 ② 检测目标目录是否存在,如果存在则继续检测目标目录中是否存在同名文件,如果不存在则复制成功 file.func.php 中添 ...
随机推荐
- java调用Command命令
----------- import java.io.BufferedReader; import java.io.InputStreamReader; /** * 此类用来执行Command命令 * ...
- SQL Server 2012 Enterprise Edition安装过程详解(包含每一步设置的含义)
一.启动安装程序,点击“安装”选项卡,选择“全新SQL Server独立安装或向现有安装添加功能”.(首次安装数据库系统或向现有数据库系统添加功能,均选择此选项) 二.随后,安装程序进行“安装程序支持 ...
- C#中Json字符串的各种应用类
在程序中任何事物及信息都可以用对象进行描述和承载,除了比较流行的xml之外,还有一种简洁快速处理目标信息的形式那就是Json格式. 首先Json格式有自己固定的格式:例如person这个对象就可以简单 ...
- Android_自定义进度条
转载:http://blog.csdn.net/lmj623565791/article/details/43371299 ,本文出自:[张鸿洋的博客] 1.概述 最近需要用进度条,秉着不重复造轮子的 ...
- phpcms 调用全站最新发布数据
phpcms模板标签没有调用全站最新发布的数据 所以参考phpcms本身自带的lists方法写了一个Countlists调用全站数据 /** * 全站最热 * @param $data */ publ ...
- c 指针 及其位运算循环移动拔河比赛问题代码
week_2_day1_7.7 周一//用字符数组 来实现 字母大小写转换#include<stdio.h>void desc( char *a ,int n){ char *i ...
- C语言单片和C#语言服务器端DES及3DES加密的实现
原文:C语言单片和C#语言服务器端DES及3DES加密的实现 公司最近在做单片机和C#语言的通信.用的是Socket通信.传输的数据是明文,后来 在会上讨论准备用DES加密(对称加密)来做. 双方约定 ...
- Android 禁止软键盘自动弹出
Android系统对EditText这个控件有监听功能,如果某个Activity中含有该控件,就会自动弹出软键盘让你输入,这个看似人性化的方案有 时候并不被用户喜欢的,所以在有些情况下要禁用该功能.这 ...
- 可爱的 Python : Python中的函数式编程,第三部分
英文原文:Charming Python: Functional programming in Python, Part 3,翻译:开源中国 摘要: 作者David Mertz在其文章<可爱的 ...
- 利用netstat和tasklist查看PC的端口占用情况
经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口? 1.Windows平台在windows命令行窗口下执行: E:\oracle\ora92\bin>n ...