当前位置: 首页 > 图文教程 > 网络编程 > PHP > 使用PHP维护文件系统

PHP
利用discuz实现PHP大文件上传应用实例代码
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
php在字符串中查找另一个字符串
php下HTTP Response中的Chunked编码实现方法
PHP实现定时生成HTML网站首页实例代码
PHP下一个非常全面获取图象信息的函数
PHP strtr() 函数使用说明
php 删除无限级目录与文件代码共享
php AJAX实例根据邮编自动完成地址信息
php miniBB中文乱码问题解决方法
cmd下运行php脚本
PHP 遍历XP文件夹下所有文件
php 移除数组重复元素的一点说明
discuz论坛 用户登录 后台程序代码
Optimizer与Debugger兼容性问题的解决方法
Zend Studio 无法启动的问题解决方法
php 页面执行时间计算代码
php smarty的预保留变量总结
php获取网页内容方法总结
php读取msn上的用户信息类

使用PHP维护文件系统


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 191 ::
收藏到网摘: n/a

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);

?>

<!--StartyourHTML-->

<HTML>

<HEAD>

<TITLE>DirectoryListing</TITLE>

</HEAD>

<BODY>

<!--UsePHPtoprintthenameofthedirectoryyouread-->

<P>Filesin:<?echo"$dir_name";?></p>

<!--UsePHPtoprintthedirectorylisting-->

<?echo"$file_list";?>

</BODY>

</HTML>

恭喜,这时已经有了一个目录列表。需要记住,要读取目录或文件(马上你会见到)中的内容用户所在的PHP运行平台必须至少对目录或文件有read权限。

以下例子为如何复制文件:

<?/*将需要复制的文件路径放入变量$original,复制的目标路径放入变量$copied*/

$original="/home/me/mydatabasedump";

$copied="/archive/mydatabasedumo_1010";

/*使用函数copy()复制源文件至目的地,或以输出错误信息结束*/

@copy($original,$copied)ordie("Couldn'tcopyfile.");

?>

示例脚本是备份系统的第一步。当脚本运行时,出于安全考虑它先将数据库复制到不同地点。通过对crontab的修改,你可以在选定时间执行此文件而无需用户介入。


假设系统上已有Lynx,你可以创建crontab入口以运行Lynx并访问文件。访问文件将运行脚本并创建复制文件。以下例子将在早晨5点运行脚本,然后关闭Lynx:

05***[username]lynx-dumphttp://localhost/copyfile.php1>/dev/null2>&1

如果你运行的是PHP的CGI版本,你可以跳过Lynx部分并参考二进制文件:

05***[username]php/path/to/copyfile.php1>/dev/null2>&1