1.string getcwd (void)
该函数主要用于获取当前的工作目录,返回的是字符串。下面举例说明此函数的使用方法。
【例11.3】
<?php
$d1=getcwd(); //获取当前路径
echo getcwd(); //输出当前目录
?>
运行结果如图11-5所示。
2.array scandir (string directory, [int sorting_order])
返回一个array,包含directory中的文件和目录。如果directory不是一个目录,则返回布尔值FALSE,并产生一条E_WARNING级别的错误。默认情况下,返回值是按照字母顺序升序排列的。如果使用了可选参数sorting_order(设为1),则按照字母顺序降序排列。
下面举例说明此函数的使用方法。
【例11.4】
<?php
$dir='D:\xampp\htdocs\code\ch11'; //定义指定的目录
$files1 = scandir($dir); //列出指定目录中的文件和目录
$files2 = scandir($dir, 1);
print_r($files1); //输出指定目录中的文件和目录
print_r($files2);
?>
运行结果如图11-6所示。
3.new dir(string directory)
此函数模仿面向对象机制,将指定的目录名转换为一个对象并返回,使用说明如下:
class dir {
dir ( string directory)
string path
resource handle
string read ( void )
void rewind ( void )
void close ( void )
}
其中,handle属性的含义为目录句柄,path属性的含义为打开目录的路径,read(void)函数的含义为读取目录,rewind(void)函数的含义为复位目录,close(void)函数的含义为关闭目录。
下面通过实例说明此函数的使用方法。
【例11.5】
<?php
$d2 = dir('D:\xampp\htdocs\code\ch11'); // 定义目录
echo "Handle: ".$d2->handle."<br/>\n"; // 输出目录句柄
echo "Path: ".$d2->path."<br/>\n"; // 输出目录的路径
while (false !== ($entry = $d2->read())) {
echo $entry."<br/>\n";
}
$d2->close();
?>
运行结果如图11-7所示。
4.chdir(string directory)
此函数将PHP的当前目录改为directory。下面举例说明此函数的使用方法。
【例11.6】
<?php
// 获取当前目录
echo getcwd() . "<br/>";
// 修改当前目录
chdir("upload");
// 获取修改后的当前目录
echo getcwd();
?>
运行结果如图11-8所示。
5.void closedir (resource dir_handle)
此函数主要用于关闭由dir_handle指定的目录流,另外,目录流必须之前已经被opendir()打开。
6.resource opendir (string path)
此函数返回一个目录句柄,其中path为要打开的目录路径。如果path不是一个合法的目录或者因为权限限制或文件系统错误而不能打开目录,则返回False并产生一个E_WARNING级别的PHP错误信息。如果不想输出错误,可以在opendir()前面加上“@”符号。
【例11.7】
运行结果如图11-9所示。
其中,is_dir()函数主要判断给定文件名是否是一个目录,readdir()函数从目录句柄中读取条目,closedir()函数关闭目录句柄。
7.string readdir (resource dir_handle)
该函数主要是返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回。
【例11.8】
运行结果如图11-10所示。
在遍历目录时,有的读者会经常写出下面错误的遍历方法。
/* 这是错误的遍历目录的方法 */
while ($file = readdir($handle)) {
echo "$file\n";
}