使用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 相关文章推荐
PHP4实际应用经验篇(3)
Oct 09 PHP
php更新mysql后获取影响的行数发生异常解决方法
Mar 28 PHP
apache配置虚拟主机的方法详解
Jun 17 PHP
mac下安装nginx和php
Nov 04 PHP
php将文本文件转换csv输出的方法
Dec 31 PHP
Linux操作系统安装LAMP环境
Jun 26 PHP
php使用正则验证中文
Apr 06 PHP
在 Laravel 项目中使用 webpack-encore的方法
Jul 21 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
Feb 22 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
Feb 21 PHP
50个优秀经典PHP算法大集合 附源码
Aug 26 PHP
PHP实现简单注册登录系统
Dec 28 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中的字符串函数
2006/11/24 PHP
php自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
CURL状态码列表(详细)
2013/06/27 PHP
PHP中通过fopen()函数访问远程文件示例
2014/11/18 PHP
PHP 5.6.11 访问SQL Server2008R2的几种情况详解
2016/08/08 PHP
常见的原始JS选择器使用方法总结
2014/04/09 Javascript
AngularJs expression详解及简单示例
2016/09/01 Javascript
微信小程序开发之圆形菜单 仿建行圆形菜单实例
2016/12/12 Javascript
使用jQuery卸载全部事件的思路详解
2017/04/03 jQuery
前端主流框架vue学习笔记第一篇
2017/07/26 Javascript
ES6学习教程之块级作用域详解
2017/10/09 Javascript
vue刷新页面时去闪烁提升用户体验效果的实现方法
2018/12/10 Javascript
mpvue实现左侧导航与右侧内容的联动
2019/10/21 Javascript
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
Python实现简易Web爬虫详解
2018/01/03 Python
详解python3中的真值测试
2018/08/13 Python
windows下cx_Freeze生成Python可执行程序的详细步骤
2018/10/09 Python
详解python如何在django中为用户模型添加自定义权限
2018/10/15 Python
Python这样操作能存储100多万行的xlsx文件
2019/04/16 Python
Python Django框架模板渲染功能示例
2019/11/08 Python
Python实现图片批量加入水印代码实例
2019/11/30 Python
eDreams澳大利亚:预订机票、酒店和度假产品
2017/04/19 全球购物
L*SPACE官网:比基尼、泳装和度假服装
2019/03/18 全球购物
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
2013/03/19 面试题
某科技软件测试面试题
2013/05/19 面试题
优秀的毕业生的自我评价
2013/12/12 职场文书
手机业务员岗位职责
2013/12/13 职场文书
意向书范文
2014/03/31 职场文书
人事任命书范文
2014/06/04 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
幼儿园教师节活动总结
2015/03/23 职场文书
技术员岗位职责范本
2015/04/11 职场文书
观后感格式
2015/06/19 职场文书
煤矿安全学习心得体会
2016/01/18 职场文书
java设计模式--三种工厂模式详解
2021/07/21 Java/Android
安装harbor作为docker镜像仓库的问题
2022/06/14 Servers