使用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&amp;&amp;mysql)六
Oct 09 PHP
非常不错的MySQL优化的8条经验
Mar 24 PHP
Ajax+PHP 边学边练 之二 实例
Nov 24 PHP
PHP 获取客户端真实IP地址多种方法小结
May 15 PHP
自定义php类(查找/修改)xml文档
Mar 26 PHP
浅析linux下apache服务器的配置和管理
Aug 10 PHP
一个PHP二维数组排序的函数分享
Jan 17 PHP
Linux下PHP加速器APC的安装与配置笔记
Oct 24 PHP
怎样搭建PHP开发环境
Jul 28 PHP
php获取开始与结束日期之间所有日期的方法
Nov 29 PHP
thinkphp项目如何自定义微信分享描述内容
Feb 20 PHP
PHP Trait功能与用法实例分析
Jun 03 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/09/23 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
2014/09/02 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
php array_udiff_assoc 计算两个数组的差集实例
2016/11/12 PHP
EXT窗口Window及对话框MessageBox
2011/01/27 Javascript
js,jQuery 排序的实现代码,网页标签排序的实现,标签排序
2011/04/27 Javascript
JavaScript mapreduce工作原理简析
2012/11/25 Javascript
Jquery操作下拉框(DropDownList)实现取值赋值
2013/08/13 Javascript
jquery中trigger()无法触发hover事件的解决方法
2015/05/07 Javascript
网页从弹窗页面单选框传值至父页面代码分享
2015/09/29 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
浅谈原生JS实现jQuery的animate()动画示例
2017/03/08 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
2017/04/28 Javascript
vuejs2.0子组件改变父组件的数据实例
2017/05/10 Javascript
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
angularjs $http调用接口的方式详解
2018/08/13 Javascript
mpvue全局引入sass文件的方法步骤
2019/03/06 Javascript
Vue中computed、methods与watch的区别总结
2019/04/10 Javascript
深入了解js原型模式
2019/05/30 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
2020/03/14 Javascript
React实现全选功能
2020/08/25 Javascript
python 动态获取当前运行的类名和函数名的方法
2014/04/15 Python
python统计文本字符串里单词出现频率的方法
2015/05/26 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
2018/12/24 Python
Python中format()格式输出全解
2019/04/12 Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
2019/08/09 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
2019/12/04 Python
巴西在线鞋店:Shoestock
2017/10/28 全球购物
英国领先的新鲜松露和最好的松露产品供应商:TruffleHunter
2019/08/26 全球购物
ajax是什么及其工作原理
2012/02/08 面试题
学生会主席竞聘书
2014/03/31 职场文书
2015年护理工作总结范文
2015/04/03 职场文书
房贷工资证明范本
2015/06/12 职场文书
三十年同学聚会致辞
2015/07/28 职场文书
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
2022/04/20 Python
Android开发手册自定义Switch开关按钮控件
2022/06/10 Java/Android