使用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实现图象锐化代码
Jun 14 PHP
php在页面中调用fckeditor编辑器的方法
Jun 10 PHP
通过PHP current函数获取未知字符键名数组第一个元素的值
Jun 24 PHP
php中通过数组进行高效随机抽取指定条记录的算法
Sep 09 PHP
php从完整文件路径中分离文件目录和文件名的方法
Mar 13 PHP
PHP使用curl模拟post上传及接收文件的方法
Mar 04 PHP
PHP数据库操作Helper类完整实例
May 11 PHP
PHP邮箱验证示例教程
Jun 01 PHP
PHP中功能强大却很少使用的函数实例小结
Nov 10 PHP
使用Yii2实现主从数据库设置
Nov 20 PHP
Yii2框架实现登录、退出及自动登录功能的方法详解
Oct 24 PHP
Yii框架日志操作图文与实例详解
Sep 09 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 遍历数据表数据并列表横向排列的代码
2009/09/05 PHP
Laravel 5框架学习之环境与配置
2015/04/08 PHP
php unlink()函数使用教程
2018/07/12 PHP
php实现微信企业付款到个人零钱功能
2018/10/09 PHP
个人总结的一些关于String、Function、Array的属性和用法
2007/01/10 Javascript
Javascript 中的类和闭包
2010/01/08 Javascript
jquery 锁定弹出层实现代码
2010/02/23 Javascript
日期处理的js库(迷你版)--自建js库总结
2011/11/21 Javascript
仿百度的关键词匹配搜索示例
2013/09/25 Javascript
JS弹出可拖拽可关闭的div层完整实例
2015/02/13 Javascript
深入浅析react native es6语法
2015/12/09 Javascript
js实现简单排列组合的方法
2016/01/27 Javascript
jQuery animate和CSS3相结合实现缓动追逐效果附源码下载
2016/04/18 Javascript
JavaScript导航脚本判断当前导航
2016/07/12 Javascript
JS实现的几个常用算法
2016/11/12 Javascript
JavaScript判断浏览器及其版本信息
2017/01/20 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
2017/03/14 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
React学习笔记之列表渲染示例详解
2017/08/22 Javascript
原生实现一个react-redux的代码示例
2018/06/08 Javascript
JS双向链表实现与使用方法示例(增加一个previous属性实现)
2019/01/31 Javascript
uniapp实现可以左右滑动导航栏
2020/10/21 Javascript
python中readline判断文件读取结束的方法
2014/11/08 Python
Python实现队列的方法
2015/05/26 Python
通过实例浅析Python对比C语言的编程思想差异
2015/08/30 Python
详解Python进程间通信之命名管道
2017/08/28 Python
python向已存在的excel中新增表,不覆盖原数据的实例
2018/05/02 Python
Python3安装psycopy2以及遇到问题解决方法
2019/07/03 Python
python通过移动端访问查看电脑界面
2020/01/06 Python
python实现四人制扑克牌游戏
2020/04/22 Python
CSS3+js实现简单的时钟特效
2015/03/18 HTML / CSS
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
2019/09/09 HTML / CSS
职工趣味运动会方案
2014/02/10 职场文书
拖欠货款起诉状
2015/05/20 职场文书
2015年公司中秋节致辞
2015/07/31 职场文书
800字作文之大雪
2019/12/04 职场文书