使用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 相关文章推荐
分页显示Oracle数据库记录的类之二
Oct 09 PHP
PHP通过正则表达式下载图片到本地的实现代码
Sep 19 PHP
PHP在网页中动态生成PDF文件详细教程
Jul 05 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
Feb 08 PHP
Apache连接PHP后无法启动问题解决思路
Jun 18 PHP
PHP使用Pear发送邮件(Windows环境)
Jan 05 PHP
PHP全功能无变形图片裁剪操作类与用法示例
Jan 10 PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 PHP
PHP时间戳和日期相互转换操作实例小结
Dec 18 PHP
php和html的区别点详细总结
Sep 24 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
Mar 02 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
Apr 13 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/02/28 PHP
关于file_get_contents返回为空或函数不可用的解决方案
2013/06/24 PHP
模板引擎smarty工作原理以及使用示例
2014/05/25 PHP
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
PHP使用内置函数file_put_contents写入文件及追加内容的方法
2015/12/07 PHP
Laravel中的Blade模板引擎示例详解
2017/10/10 PHP
ThinkPHP5分页paginate代码实例解析
2020/11/10 PHP
如何实现浏览器上的右键菜单
2006/07/10 Javascript
javascript拓展DOM操作 prependChild insertAfert
2010/11/17 Javascript
判断javascript的数据类型(示例代码)
2013/12/11 Javascript
JavaScript删除指定子元素代码实例
2015/01/13 Javascript
详谈javascript中DOM的基本属性
2015/02/26 Javascript
Node.js Express 框架 POST方法详解
2017/01/23 Javascript
JavaScript中undefined和null的区别
2017/05/03 Javascript
jquery点赞功能实现代码 点个赞吧!
2020/05/29 jQuery
Angular2中监听数据更新的方法
2018/08/31 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
es6函数中的作用域实例分析
2020/04/18 Javascript
Swiper实现导航栏滚动效果
2020/10/16 Javascript
python3 pillow生成简单验证码图片的示例
2017/09/19 Python
人脸识别经典算法一 特征脸方法(Eigenface)
2018/03/13 Python
Django将默认的SQLite更换为MySQL的实现
2019/11/18 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
2020/03/16 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
2021/01/05 Python
微软俄罗斯官方网站:Microsoft俄罗斯
2016/09/18 全球购物
英国知名化妆品网站:Revolution Beauty(原TAM Beauty)
2018/02/28 全球购物
人事主管岗位职责范本
2013/12/04 职场文书
驾驶员安全责任书
2014/07/22 职场文书
单位工作证明
2014/10/07 职场文书
会计求职简历自我评价
2015/03/10 职场文书
2016春节家属慰问信
2015/03/25 职场文书
房地产工程部经理岗位职责
2015/04/09 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
详解Go与PHP的语法对比
2021/05/29 PHP
Redis Stream类型的使用详解
2021/11/11 Redis
vue+echarts实现多条折线图
2022/03/21 Vue.js