使用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 相关文章推荐
解析PHP中ob_start()函数的用法
Jun 24 PHP
推荐25款php中非常有用的类库
Sep 29 PHP
详解Window7 下开发php扩展
Dec 31 PHP
php使用函数pathinfo()、parse_url()和basename()解析URL
Nov 25 PHP
YII2 实现多语言配置的方法分享
Jan 11 PHP
php实现文件上传及头像预览功能
Jan 15 PHP
老生常谈php 正则中的i,m,s,x,e分别表示什么
Mar 02 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 08 PHP
CI框架网页缓存简单用法分析
Dec 26 PHP
php实现网页上一页下一页翻页过程详解
Jun 28 PHP
laravel 框架结合关联查询 when()用法分析
Nov 22 PHP
PhpStorm 2020.3:新增开箱即用的PHP 8属性(推荐)
Oct 30 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
PHP垃圾回收机制引用计数器概念分析
2013/06/24 PHP
PHP 7.1新特性的汇总介绍
2016/12/16 PHP
php识别翻转iphone拍摄的颠倒图片
2018/05/17 PHP
stripos函数知识点实例分享
2019/02/11 PHP
jQuery 1.0.2
2006/10/11 Javascript
jquery购物车实时结算特效实现思路
2013/09/23 Javascript
js 对小数加法精度处理示例说明
2013/12/27 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
理解jQuery stop()方法
2014/11/21 Javascript
Vue.js展示AJAX数据简单示例讲解
2017/03/29 Javascript
JS给按钮添加跳转功能类似a标签
2017/05/30 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
2017/06/02 Javascript
JavaScript实现一个空中避难的小游戏
2017/06/06 Javascript
webstorm添加vue.js支持的方法教程
2017/07/05 Javascript
简单了解JavaScript异步
2019/05/23 Javascript
[52:57]2014 DOTA2国际邀请赛中国区预选赛 LGD-CDEC VS HGT
2014/05/21 DOTA
[03:38]2014DOTA2西雅图国际邀请赛 VG战队巡礼
2014/07/07 DOTA
python实现给字典添加条目的方法
2014/09/25 Python
python分析nignx访问日志脚本分享
2015/02/26 Python
Python实现将DOC文档转换为PDF的方法
2015/07/25 Python
python 信息同时输出到控制台与文件的实例讲解
2018/05/11 Python
python 定义给定初值或长度的list方法
2018/06/23 Python
Flask实现跨域请求的处理方法
2018/09/27 Python
python3 深浅copy对比详解
2019/08/12 Python
python中@property的作用和getter setter的解释
2020/12/22 Python
Sephora丝芙兰菲律宾官方网站:购买化妆品和护肤品
2017/04/05 全球购物
学校办公室主任职责
2013/12/27 职场文书
单位委托书范本
2014/04/04 职场文书
关于学习的演讲稿
2014/05/10 职场文书
公安机关正风肃纪剖析材料
2014/10/10 职场文书
单位单身证明样本
2014/10/11 职场文书
会计电算化实训报告
2014/11/04 职场文书
医院科室评语
2015/01/04 职场文书
政审证明材料
2015/06/19 职场文书
C#连接ORACLE出现乱码问题的解决方法
2021/10/05 Oracle
Java异常处理try catch的基本用法
2021/12/06 Java/Android