使用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 相关文章推荐
在PHP3中实现SESSION的功能(三)
Oct 09 PHP
php下统计用户在线时间的一种尝试
Aug 26 PHP
领悟php接口中interface存在的意义
Jun 27 PHP
PHP函数之日期时间函数date()使用详解
Sep 09 PHP
推荐一款MAC OS X 下php集成开发环境mamp
Nov 08 PHP
php获取本周星期一具体日期的方法
Apr 20 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
Jan 07 PHP
YII2.0之Activeform表单组件用法实例
Jan 09 PHP
使用php完成常见的文件上传功能(推荐)
Jan 13 PHP
php strftime函数获取日期时间(switch用法)
May 16 PHP
在Laravel5.6中使用Swoole的协程数据库查询
Jun 15 PHP
PHP批斗大会之缺失的异常详解
Jul 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
印尼林东PWN黄金曼特宁咖啡豆:怎么冲世界上最醇厚的咖啡冲煮教程
2021/03/03 冲泡冲煮
PHP中$_SERVER使用说明
2015/07/05 PHP
CakePHP框架Model函数定义方法示例
2017/08/04 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
2017/08/10 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
超级简单的图片防盗(HTML),好用
2007/04/08 Javascript
javascript之dhDataGrid Ver2.0.0代码
2007/07/01 Javascript
JS对象与JSON格式数据相互转换
2012/02/20 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
jQuery+canvas实现的球体平抛及颜色动态变换效果
2016/01/28 Javascript
js实现带缓动动画的导航栏效果
2017/01/16 Javascript
JavaScript实现类似淘宝的购物车效果
2017/03/16 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
JS运动特效之任意值添加运动的方法分析
2018/01/24 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
2018/03/01 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
2019/07/19 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
2020/09/21 Javascript
vue-cli4使用全局less文件中的变量配置操作
2020/10/21 Javascript
深入解析Python中的线程同步方法
2016/06/14 Python
python基础之包的导入和__init__.py的介绍
2018/01/08 Python
详解Django的model查询操作与查询性能优化
2018/10/16 Python
Python 的AES加密与解密实现
2019/07/09 Python
在Python 的线程中运行协程的方法
2020/02/24 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
2020/04/24 Python
python线程里哪种模块比较适合
2020/08/02 Python
教师自我评价范例
2013/09/24 职场文书
自我鉴定范文300字
2013/10/01 职场文书
给医务人员表扬信
2014/01/12 职场文书
电工技术比武方案
2014/05/11 职场文书
幼儿教师求职信
2014/05/24 职场文书
应届生求职信范文
2014/05/26 职场文书
2016春节家属慰问信
2015/03/25 职场文书
教你用Python+selenium搭建自动化测试环境
2021/06/18 Python
图文详解matlab原始处理图像几何变换
2021/07/09 Python
php实例化对象的实例方法
2021/11/17 PHP
CSS3实现指纹特效代码
2022/03/17 HTML / CSS