使用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制作静态网站的模板框架(四)
Oct 09 PHP
php 动态执行带有参数的类方法
Apr 10 PHP
php读取html并截取字符串的简单代码
Nov 30 PHP
javascript,php获取函数参数对象的代码
Feb 03 PHP
php将fileterms函数返回的结果变成可读的形式
Apr 21 PHP
PHP 无限分类三种方式 非函数的递归调用!
Aug 26 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
Jun 05 PHP
PHP小偷程序的设计与实现方法详解
Oct 15 PHP
php利用云片网实现短信验证码功能的示例代码
Nov 18 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
Feb 20 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
May 06 PHP
PHP实现基于状态的责任链审批模式详解
May 31 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
PHP4在WinXP下IIS和Apache2服务器上的安装实例
2006/10/09 PHP
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
2013/06/20 PHP
php使用socket post数据到其它web服务器的方法
2015/06/02 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
支持ie与FireFox的剪切板操作代码
2009/09/28 Javascript
Javascript 面向对象 命名空间
2010/05/13 Javascript
url地址自动加#号问题说明
2010/08/21 Javascript
Javascript调用C#代码
2011/01/17 Javascript
ExtJs Excel导出并下载IIS服务器端遇到的问题
2011/09/16 Javascript
node.js中的buffer.slice方法使用说明
2014/12/10 Javascript
javascript将异步校验表单改写为同步表单
2015/01/27 Javascript
jQuery实现平滑滚动页面到指定锚点链接的方法
2015/07/15 Javascript
JavaScript类型系统之基本数据类型与包装类型
2016/01/06 Javascript
JavaScript 弹出子窗体并返回结果到父窗体的实现代码
2016/05/28 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
2016/08/02 Javascript
python 从远程服务器下载东西的代码
2013/02/10 Python
Python的包管理器pip更换软件源的方法详解
2016/06/20 Python
利用python发送和接收邮件
2016/09/27 Python
Python队列、进程间通信、线程案例
2019/10/25 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
Python爬虫:Request Payload和Form Data的简单区别说明
2020/04/30 Python
怎么快速自学python
2020/06/22 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
2021/03/04 Python
REISS英国官网:伦敦High Street最受欢迎品牌
2016/12/21 全球购物
中医专业应届生求职信
2013/11/17 职场文书
电信专业毕业生推荐信
2013/11/18 职场文书
项目资料员岗位职责
2013/12/10 职场文书
预备党员思想汇报
2014/01/08 职场文书
品牌推广策划方案
2014/05/28 职场文书
力学专业求职信
2014/07/23 职场文书
乡镇精神文明建设汇报材料
2014/08/15 职场文书
公司离职证明样本
2014/09/13 职场文书
关于拾金不昧的感谢信
2015/01/21 职场文书
Opencv实现二维直方图的计算及绘制
2021/07/21 Python
vscode内网访问服务器的方法
2022/06/28 Servers