使用PHP维护文件系统


Posted in PHP onOctober 09, 2006

PHP有很多与文件系统相关的函数,不仅可以帮助你打开文件,还可以显示目录内容、移动文件等。很多人甚至使用PHP写出了基于Web的文件管理器。

首先需要提醒一些关于文件路径的东西:在Windows你可以在文件路径中使用斜线“/”或反斜线“\”,而其他操作系统仅使用”/”。出于兼容性考虑,以下实例使用“/”的表示方法:

下面的简单脚本显示了一个基本的目录列表。注释在代码中并解释了每一步:

<? /* 在变量 $dir_name中给出希望访问的目录完整路径*/

$dir_name = "/home/me/";

/* 创建句柄,打开给定目录的结果*/

$dir = opendir($dir_name);

/* 启动一段文本添加到将要放置列表元素(文件名)的地方 */

$file_list = "<ul>";

/* 使用while语句,读取所打开目录的所有元素。如果文件名既非“.”及“..”则在列表中输出文件名*/

while ($file_name = readdir($dir)) {

if (($file_name != ".") && ($file_name != "..")) {

$file_list .= "<li>$file_name";

}

}

/* 终结列表 */

$file_list .= "</ul>";

/* 关闭打开的目录句柄并结束PHP代码段*/

 
closedir($dir);

?>

<!-- Start your HTML -->

<HTML>

<HEAD>

<TITLE>Directory Listing</TITLE>

</HEAD>

<BODY>

<!-- Use PHP to print the name of the directory you read -->

<P>Files in: <? echo "$dir_name"; ?></p>

<!-- Use PHP to print the directory listing -->

<? echo "$file_list"; ?>

</BODY>

</HTML>

恭喜,这时已经有了一个目录列表。需要记住,要读取目录或文件(马上你会见到)中的内容用户所在的PHP运行平台必须至少对目录或文件有read权限。

以下例子为如何复制文件:

<? /* 将需要复制的文件路径放入变量$original,复制的目标路径放入变量$copied */

$original = "/home/me/mydatabasedump";

$copied = "/archive/mydatabasedumo_1010";

/* 使用函数copy() 复制源文件至目的地,或以输出错误信息结束*/

@copy($original, $copied) or die("Couldn't copy file.");

?>

示例脚本是备份系统的第一步。当脚本运行时,出于安全考虑它先将数据库复制到不同地点。通过对crontab的修改,你可以在选定时间执行此文件而无需用户介入。

假设系统上已有Lynx,你可以创建crontab入口以运行Lynx并访问文件。访问文件将运行脚本并创建复制文件。以下例子将在早晨5点运行脚本,然后关闭Lynx:

0 5 * * * [username] lynx -dump http://localhost/copyfile.php 1>/dev/null 2>&1

如果你运行的是PHP的CGI版本,你可以跳过Lynx部分并参考二进制文件:

0 5 * * * [username] php /path/to/copyfile.php 1>/dev/null 2>&1

--------------------------------------------
本文作者:Julie Meloni 是i2i Interactive的技术主管,及Linux和开放源代码社区的大力推动者。她撰写了很多关于PHP及其他技术的书籍,并成为对CNET Builder.com具有长期贡献的专家。

PHP 相关文章推荐
弄了个检测传输的参数是否为数字的Function
Dec 06 PHP
php递归函数中使用return的注意事项
Jan 17 PHP
使用PHP函数scandir排除特定目录
Jun 12 PHP
PHP生成指定长度随机数最简洁的方法
Jul 14 PHP
php实现微信公众平台账号自定义菜单类
Oct 11 PHP
PHP生成可点击刷新的验证码简单示例
May 13 PHP
php安装ssh2扩展的方法【Linux平台】
Jul 20 PHP
mysql alter table命令修改表结构实例详解
Sep 24 PHP
如何打开php的gd2库
Feb 09 PHP
PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
May 08 PHP
php精度计算的问题解析
Jun 21 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
Aug 13 PHP
跟我学小偷程序之成功偷取首页(第三天)
Oct 09 #PHP
在apache下限制每个虚拟主机的并发数!!!!
Oct 09 #PHP
PHP4之真OO
Oct 09 #PHP
第十一节 重载 [11]
Oct 09 #PHP
第十二节 类的自动加载 [12]
Oct 09 #PHP
第十四节 命名空间 [14]
Oct 09 #PHP
学习使用PHP数组
Oct 09 #PHP
You might like
dedecms模版制作使用方法
2007/04/03 PHP
PHP 获取文件权限函数介绍
2013/07/11 PHP
取得单条网站评论以数组形式进行输出
2014/07/28 PHP
php通过PHPExcel导入Excel表格到MySQL数据库的简单实例
2016/10/29 PHP
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
php mysql数据库操作类(实例讲解)
2017/08/06 PHP
javascript 多种搜索引擎集成的页面实现代码
2010/01/02 Javascript
ajax更新数据后,jquery、jq失效问题
2011/03/16 Javascript
制作jquery遮罩层效果导航菜单代码分享
2013/12/25 Javascript
js与jquery获取父级元素,子级元素,兄弟元素的实现方法
2014/01/09 Javascript
最短的IE判断var ie=!-[1,]分析
2014/05/28 Javascript
JavaScript实现格式化字符串函数String.format
2016/12/16 Javascript
JS实现动态给标签控件添加事件的方法示例
2017/05/13 Javascript
js+html5实现页面可刷新的倒计时效果
2017/07/15 Javascript
JavaScript取得gridview中获取checkbox选中的值
2017/07/24 Javascript
JS实现生成由字母与数字组合的随机字符串功能详解
2018/05/25 Javascript
vue+express 构建后台管理系统的示例代码
2018/07/19 Javascript
Postman的下载及安装教程详解
2018/10/16 Javascript
js简单实现自动生成表格功能示例
2020/06/02 Javascript
手把手带你搭建一个node cli的方法示例
2020/08/07 Javascript
python super函数使用方法详解
2020/02/14 Python
python网络编程socket实现服务端、客户端操作详解
2020/03/24 Python
pytorch快速搭建神经网络_Sequential操作
2020/06/17 Python
matplotlib bar()实现百分比堆积柱状图
2021/02/24 Python
聊聊python在linux下与windows下导入模块的区别说明
2021/03/03 Python
实例讲解使用SVG制作loading加载动画的方法
2016/04/05 HTML / CSS
猫途鹰:全球领先的旅游点评社区
2017/04/07 全球购物
世界上最受欢迎的钓鱼诱饵:Rapala
2019/05/02 全球购物
Nordgreen美国官网:在线购买极简主义斯堪的纳维亚手表
2019/07/24 全球购物
资产评估专业学生的自我鉴定
2013/11/14 职场文书
建筑专业自荐信范文
2014/01/05 职场文书
商场总经理岗位职责
2014/02/03 职场文书
餐厅筹备计划书
2014/04/25 职场文书
个人查摆问题及整改措施
2014/10/16 职场文书
团队拓展训练心得体会
2016/01/12 职场文书
详细聊聊vue中组件的props属性
2021/11/02 Vue.js