您的位置:首页 > 编程语言 > PHP开发

PHP目录处理

2016-04-10 13:31 405 查看
目录也是文件,是一种特殊的文件。要浏览目录下的文件,首先也要打开目录,浏览完毕后,同样要关闭目录。就这点说,两者没有什么分别,都要经过3步,即打开目录、浏览目录和关闭目录。

[align=center]打开目录[/align]
打开目录和打开文件类似,但打开的文件如果不存在,在自动创建一个新文件;而打开的目录如果不正确,则一定会报错。
在PHP中使用opendir()函数打开目录。语法如下:
resource opendir(string path)
参数path是一个合法的目录零,成功执行后返回目录的指针;如果path不是有个合法的目录或者因为权限、文件系统错误而不能打开目录,opendir()函数将返回false,并产生一个E_WARNING级别的错误信息。可以在opendir()前面加上个"@"符号来抑制错误信息的输出。

[align=center]浏览目录[/align]
在PHP中浏览目录中的文件使用的是scandir()函数。语法如下:
array scandir(string directory[,int sorting_order])
该函数返回一个数组,包含directory中的所有文件和目录。参数sorting_order指定排列顺序,默认按字母升序排列,如果应用参数sorting_order,则变为降序排列。
例如:
浏览根目录下的所有文件

$path="../test";
if( is_dir($path) ) {
$dir=scandir($path);
foreach ($dir as $value) {
echo $value."<br>";
}
}else{
echo "目录路径错误";
}
运行结果为:
.

..

.idea

15-test

CSDN

count.txt

index1.php

num

phpyudingyichangliang.php

test.js

test.php

test.txt

upfile

[align=center]操作目录[/align]
因为目录是特殊的文件,所以对文件的操作处理函数(如重命名等)一般也试用与目录。PHP也为目录本身提供了一些特殊的操作函数。
下表列出了一些常用的目录操作函数:

函数原型
函数说明
举例
bool mkdir(string pathname)
新建一个指定的目录mkdir("temp")
bool rmdir(string dirname)删除所指定的目录,该目录必须是空的
rmdir("temp")
string getcwd(void)
获取当前工作的目录getcwd()
bool chdir(string directory)
改变当前目录为diretoryecho getcwd().'<br>';
chdir('../');
echo getcwd().'<br>';
float disk_free_space(string directory)
返回目录中可用空间(bytes)。
被检查的文件必须通过服务器的文件系统。
disk_free_space('D:\\wampserver');
float disk_total_space(string directory)
返回目录的总空间大小(bytes)
disk_total_space('D:\\wampserver');
string readdir(resource handle)
返回目录中下一个文件的文件名(使用此函数时,目录必须是使用opendir()函数打开的)在PHP5之前,都是使用这个函数来浏览目录的
while(false!==($path==readdir($handle))){
    echo $pah;
}
void rewinddir(resource handle)
将指定的目录重新指到目录的开头
rewinddir($handle)
[align=center]关闭目录[/align]
PHP中通过closedir()函数关闭目录。语法如下
void closedir(resource handle)
参数handle为使用opendir()函数打开的一个目录所返回的目录指针
例如,下面是一个打开和关闭目录的流程代码:
$path="../";
if(is_dir($path)){
if($dire=opendir($path))
echo $dire;
}else{
echo "路径错误";
exit();
}
//....  //其他操作

closedir($dire);

运行结果为:

Resource id #2

注:is_dir()函数用于判断当前路径是否是一个合法的目录。如果合法,返回true,否则返回false。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息