使用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 相关文章推荐
图形数字验证代码
Oct 09 PHP
php面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
Sep 30 PHP
PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
Apr 17 PHP
CodeIgniter图像处理类的深入解析
Jun 17 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
Sep 10 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
Oct 30 PHP
phpmyadmin中禁止外网使用的方法
Nov 04 PHP
php实现简单文件下载的方法
Jan 30 PHP
PHP内核学习教程之php opcode内核实现
Jan 27 PHP
PHP环形链表实现方法示例
Sep 15 PHP
漂亮的thinkphp 跳转页封装示例
Oct 16 PHP
php的单例模式及应用场景详解
Feb 27 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
fleaphp crud操作之findByField函数的使用方法
2011/04/23 PHP
PHP5.3安装Zend Guard Loader图文教程
2014/09/29 PHP
一个比较不错的PHP日历类分享
2014/11/18 PHP
php常用表单验证类用法实例
2015/06/18 PHP
PHP中array_keys和array_unique函数源码的分析
2016/02/26 PHP
php打乱数组二维数组多维数组的简单实例
2016/06/17 PHP
JavaScript在IE中“意外地调用了方法或属性访问”
2008/11/19 Javascript
用js模拟JQuery的show与hide动画函数代码
2010/09/20 Javascript
jquery一句话全选/取消全选
2011/03/01 Javascript
Javascript控制input输入时间格式的方法
2015/01/28 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
2015/02/27 Javascript
jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码
2015/08/21 Javascript
js实现左侧网页tab滑动门效果代码
2015/09/06 Javascript
Vuejs 组件——props数据传递的实例代码
2017/03/07 Javascript
AngularJS 购物车全选/取消全选功能的实现方法
2017/08/14 Javascript
修改npm全局安装模式的路径方法
2018/05/15 Javascript
layui点击数据表格添加或删除一行的例子
2019/09/12 Javascript
vue中destroyed方法的使用说明
2020/07/21 Javascript
跟老齐学Python之编写类之二方法
2014/10/11 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
2018/04/18 Python
python 通过手机号识别出对应的微信性别(实例代码)
2019/12/22 Python
python能否java成为主流语言吗
2020/06/22 Python
python实现快速文件格式批量转换的方法
2020/10/16 Python
Johnston & Murphy官网: 约翰斯顿·墨菲牛津总统鞋
2018/01/09 全球购物
伦敦哈德森鞋:Hudson Shoes
2018/02/06 全球购物
荷兰超市:DEEN
2018/03/14 全球购物
Molly Bracken法国电子商店:法国女性时尚品牌
2019/07/24 全球购物
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类
2012/02/06 面试题
后勤采购员岗位职责
2013/12/19 职场文书
旅游文化节策划方案
2014/06/06 职场文书
外贸业务员岗位职责
2015/02/13 职场文书
2015年庆祝国庆节66周年演讲稿
2015/07/30 职场文书
2019七夕节祝福语36句,快来收藏吧
2019/08/06 职场文书
六种css3实现的边框过渡效果
2021/04/22 HTML / CSS
Matlab如何实现矩阵复制扩充
2021/06/02 Python
Vue3.0中Ref与Reactive的区别示例详析
2021/07/07 Vue.js