使用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 $_ENV为空的原因分析
Jun 01 PHP
PHP获取http请求的头信息实现步骤
Dec 16 PHP
深入PHP nl2br()格式化输出的详解
Jun 05 PHP
使用PHP备份MYSQL数据的多种方法
Jan 15 PHP
php实现数组筛选奇数和偶数示例
Apr 11 PHP
php输出全球各个时区列表的方法
Mar 31 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
Apr 27 PHP
php发送邮件的问题详解
Jun 22 PHP
PHP 信号管理知识整理汇总
Feb 19 PHP
ThinkPHP框架表单验证操作方法
Jul 19 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
Apr 27 PHP
PHP中散列密码的安全性分析
Jul 26 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
模拟OICQ的实现思路和核心程序(三)
2006/10/09 PHP
php 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
2010/03/23 PHP
Thinkphp+smarty+uploadify实现无刷新上传
2015/07/30 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
半角全角相互转换的js函数
2009/10/16 Javascript
Jquery知识点一 Jquery的ready和Dom的onload的区别
2011/01/15 Javascript
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
简单实现异步编程promise模式
2015/07/31 Javascript
JS利用cookie记忆当前位置的防刷新导航效果
2015/10/15 Javascript
jquery转盘抽奖功能实现
2015/11/13 Javascript
Bootstrap自定义文件上传下载样式
2016/05/26 Javascript
js 判断数据类型的几种方法
2017/01/13 Javascript
Angular JS 生成动态二维码的方法
2017/02/23 Javascript
JS中showModalDialog关闭子窗口刷新主窗口用法详解
2017/03/25 Javascript
koa+jwt实现token验证与刷新功能
2019/05/30 Javascript
微信小程序之几种常见的弹框提示信息实现详解
2019/07/11 Javascript
JS实现星星海特效
2019/12/24 Javascript
Python代码调试的几种方法总结
2015/04/15 Python
python实现猜单词小游戏
2020/05/22 Python
pycharm安装和首次使用教程
2018/08/27 Python
python实现的MySQL增删改查操作实例小结
2018/12/19 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
2019/08/23 Python
python正则过滤字母、中文、数字及特殊字符方法详解
2020/02/11 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
2020/04/10 Python
Python爬虫爬取微信朋友圈
2020/08/06 Python
详解vscode实现远程linux服务器上Python开发
2020/11/10 Python
Python爬虫之Selenium鼠标事件的实现
2020/12/04 Python
css3动画效果抖动解决方法
2018/09/03 HTML / CSS
新西兰领先的内衣店:Bendon Lingerie新西兰
2018/07/11 全球购物
大学生职业规划书的范本
2014/02/18 职场文书
数控专业自荐书范文
2014/03/16 职场文书
物业工程部岗位职责
2015/02/11 职场文书
入党积极分子考察意见
2015/06/02 职场文书
小学生安全教育心得体会
2016/01/15 职场文书
go语言使用Casbin实现角色的权限控制
2021/06/26 Golang
Nginx反向代理、重定向
2022/04/13 Servers