使用目录可以把文件进行分类存放,方便管理者查找,所以对目录进行在线管理是非常必要的。在前面章节中,已经涉及很多目录操作的方法,如创建目录、获取当前目录、删除目录等。在本例中,将对目录的基本操作进行汇总,使读者对目录操作方法有个系统的了解。运行结果如图11.18所示。
创建目录 浏览目录
删除目录 删除文件
图11.18 目录操作模块
【操作步骤】
第1步,创建index.php,复制11.5.1节文档结构,然后在此基础上完成创建目录、浏览目录、删除目录和删除文件功能。
第2步,创建目录。先设计一个表单结构:
<form name="form1" id="form1" method="post" action=""><hr> <h2>创建目录</h2> <p>添加目录位置:<input name="objfile" type="text" id="objfile" size="35"></p> <p>设置目录存储位置,例如:E:\www est。</p> <p><input name="submit1" type="submit" id="submit1" value="创建"></p> </form>
然后,在PHP脚本中接收用户提交的信息,应用mkdir()函数完成目录的创建。
<?php header("Context-Type:text/html;charset=utf-8"); if (isset($_POST ['submit1'])&& $_POST ['submit1'] == "创建") { $file_dir = iconv ( "utf-8", "gb2312", $_POST ['objfile'] ); if (is_dir ( $file_dir )) { echo "<script>alert('目录已经存在!');</script>"; } else { if (mkdir ( $file_dir )) { echo "<script>alert('目录创建成功!');</script>"; } else { echo "<script>alert('目录创建失败!');</script>"; } } } ?>
第3步,浏览当前目录。通过getcwd()函数定位到当前目录,并应用opendir()函数和readdir()函数读取当前目录中的内容。
<?php $lookdir = getcwd (); //获得当前脚本目录 $i = 0; if (is_dir ( $lookdir )) { //检测是否是合法目录 if ($opendir = opendir ( $lookdir )) { //打开目录 while ( $li = readdir ( $opendir ) ) { //读取目录 $i ++; echo "$i: " . iconv ( "gb2312", "utf-8", $li ). " <br>"; } } } //输出目录中的内容 ?>
第4步,删除目录。在上一步的基础上,为输出的目录创建删除超链接,链接到delete.php文件,完成目录的删除操作。
<?php $lookdir = getcwd (); //获得当前脚本目录 $i = 0; if (is_dir ( $lookdir )) { //检测是否是合法目录 if ($opendir = opendir ( $lookdir )) { //打开目录 while ( $li = readdir ( $opendir ) ) { //读取目录 $i ++; echo " $i: " . iconv ( "gb2312", "utf-8", $li ); if ($li == "." || $li == "..") { echo "<br>"; } elseif (filetype ( $li ) == "file") { echo "<br>"; } else { echo "<a href='delete.php?catalog=" . urlencode ( $li ) . "' title='删除目录' >删除</a><br>"; } } } } //输出目录中的内容 ?>
第 5步,删除文件。在上一步的基础上,为输出的文件创建删除超链接,链接到delete.php文件,完成文件的删除操作。
<?php $lookdir = getcwd (); //获得当前脚本目录 $i = 0; if (is_dir ( $lookdir )) { //检测是否是合法目录 if ($opendir = opendir ( $lookdir )) { //打开目录 while ( $li = readdir ( $opendir ) ) { //读取目录 $i ++; echo " $i: " . iconv ( "gb2312", "utf-8", $li ) ; if ($li == "." || $li == "..") { echo "<br>"; } elseif (filetype ( $li ) == "dir") { echo "<br>"; } else { echo "<a href='delete.php?catalog=" . urlencode ( $li ) . "' title='删除文件' >删除</a><br>"; } } } } //输出目录中的内容 ?>
第6步,创建delete.php文件,分别应用rmdir()函数和unlinkO函数完成目录和文件的删除。
<?php header ( "Content-type: text/html; charset=utf-8" ); //设置文件编码格式 $count = substr_count ( $_GET ['catalog'], '.' ); if ($count >= 1) { if (unlink ( $_GET ['catalog'] )) { echo "<script>alert('文件删除成功!'); window.location.href='index.php?dir=deletefile';</script>"; } else { echo "<script>alert('文件删除失败!'); history.back();</script>"; } } else { if (is_dir ( $_GET ['catalog'] )) { if (@rmdir ( $_GET ['catalog'] )) { echo "<script>alert('目录删除成功!'); window.location.href='index.php?dir=deletedir';</script>"; } else { echo "<script>alert('目录删除失败!'); history.back();</script>"; } } } ?>
本例主要应用mkdir()、is_dir()、getcwd()、rmdir()、opendir()和readdir()函数等,完成目录的判断、创建、打开、读取和删除操作。所使用函数的功能和语法简单说明请参考前面说明。