兼容PHP5的PHP目录管理函数库

主要能兼容: PHP 5
一、chdir — 改变目录
语法:bool chdir ( string directory )
返回值:整数
函数种类: 文件存取
内容说明:
将 PHP 的当前目录改为directory。directory:新的当前目录。返回值如果成功则返回 TRUE,失败则返回 FALSE。
例子讲解: 

预定义常量:

chdir : 改变目录。
dir : 目录类别类。
closedir : 关闭目录 handle。
opendir : 打开目录 handle。
readdir : 读取目录 handle。
rewinddir : 重设目录 handle。

 程序代码
<?php
// current directory
echo getcwd() . “n”;
chdir(‘public_html’);
// current directory
echo getcwd() . “n”;
?>

DIRECTORY_SEPARATOR (string) :目录分隔符

chdir
改变目录。
语法: int chdir(string directory);
返回值: 整数
函数种类: 文件存取
内容说明 本函数用来改变目前 php 执行的目录到新的 directory
目录中。若无法改变则返回 false,成功则返回 true。

输出结果为:
/home/vincent
/home/vincent/public_html

PATH_SEPARATOR (string) :路径分隔符

dir
目录类别类。
澳门新葡萄京娱乐场,语法: new dir(string directory);
返回值: 类
函数种类: 文件存取
内容说明 这是一个类似面向对象的类别类,用来读取目录。当目录参数
directory 打开之后,有二个属性可用:handle 属性就像其它非类的函数所用的
readdir()、rewinddir() 及 closedir();path
属性则配置打开目录后的路径参数。本类有三个方法 (method):read、rewind 与
close。

注意:循环语句中会出现“ Warning: chdir(): No such file or directory (errno 2) in ***** on line *”错误。

bool chdir ( string $directory )— 改变目录

使用范例
<?
$d = dir(“/etc”);
echo “handle: “.$d->handle.”<br>n”;
echo “path: “.$d->path.”<br>n”;
while($entry=$d->read()) {
echo $entry.”<br>n”;
}
$d->close();
?>

 程序代码
<?php
// current directory
echo getcwd() . “n”;
for($i=1; $i<=2; $i++){
chdir(‘whoist’);
// current directory
echo getcwd() . “n”;
}
?>

复制代码 代码如下:

closedir
关闭目录 handle。
语法: void closedir(int dir_handle);
返回值: 无
函数种类: 文件存取
内容说明
本函数用来关闭目录资料流的 dir_handle。这个 dir_handle
参数所操作的目录必须要 opendir() 打开的方可使用。

二、dir — directory 类
语法:new dir(string directory);
返回值:类
函数种类: 文件存取
内容说明:
这是一个类似面向对象的类别类,用来读取目录。当目录参数 directory 打开之后,有二个属性可用:handle 属性就像其它非类的函数所用的 readdir()、rewinddir() 及 closedir();path 属性则配置打开目录后的路径参数。本类有三个方法 (method):read、rewind 与 close。
class dir {
dir ( string directory )
string path
resource handle
string read ( void )
void rewind ( void )
void close ( void )
}
例子讲解: 

 echo getcwd() . “n”;
 chdir(‘public_html’);
 echo getcwd() . “n”;

opendir
打开目录 handle。
语法: int opendir(string path);
返回值: 整数
函数种类: 文件存取
内容说明
本函数用来打开目录资料流。返回的整数是可供其它目录函数操作的 handle。

 程序代码
<?php
$d = dir(“/etc/php5”);
echo “Handle: ” . $d->handle . “n”;
echo “Path: ” . $d->path . “n”;
while (false !== ($entry = $d->read())) {
echo $entry.”n”; 
}
$d->close();
?>

bool chroot ( string $directory )— 改变根目录,仅在系统支持且运行于
CLI,CGI 或嵌入 SAPI 版本时才行。

readdir
读取目录 handle。
语法: string readdir(int dir_handle);
返回值: 字符串
函数种类: 文件存取
内容说明
本函数用来读取目录。返回目录中的文件名称,读取不照任何特殊的顺序。
使用范例 本例列出目前目录的所有文件
<?php
$handle=opendir(‘.’);
echo “目录 handle: $handlen”;
echo “文件:n”;
while ($file = readdir($handle)) {
echo “$filen”;
}
closedir($handle);
?>

输出结果为:
Handle: Resource id #2
Path: /etc/php5
.
..
apache
cgi
cli

dir::dir ( string $directory )— directory
类,有三个方法可用:read,rewind(将文件内部的位置指针重新指向一个数据流开头)
和 close

rewinddir
重设目录 handle。
语法: void rewinddir(int dir_handle);
返回值: 无
函数种类: 文件存取
内容说明 本函数用来重设目录资料流到开始处。

注: read 方法返回的目录项的顺序依赖于系统。
注: 本函数定义了内部类 Directory,意味着不能再用同样的名字定义用户自己的类。

复制代码 代码如下:
$d = dir(“E:/work/html”);
 foreach($d as $k=>$v){
     echo $k.’->’ .$v. ‘
‘;
 }
 while(false !== ($entry = $d->read())){
     echo $entry.”
“;
 }
 $d->close();
 
 void closedir ( resource $dir_handle )— 关闭目录句柄

三、closedir — 关闭目录句柄
语法:void closedir ( resource dir_handle )
返回值:无
函数种类: 文件存取
内容说明:
关闭由 dir_handle 指定的目录流。流必须之前被 opendir() 所打开。
例子讲解:

复制代码 代码如下:
$dir = “/etc/php5/”;

 程序代码
<?php
$dir = “/etc/php5/”;
// Open a known directory, read directory into variable and then close
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        $directory = readdir($dh);
        closedir($dh);
    }
}
?>

 if (is_dir($dir)) {
     if ($dh = opendir($dir)){
         $directory = readdir($dh);
         closedir($dh);
     }
 }
 
 string getcwd ( void )— 取得当前工作目录

四、opendir — 打开目录句柄
语法:resource opendir ( string path [, resource context] )
返回值:整数
函数种类: 文件存取
内容说明:
本函数用来打开目录资料流。返回的整数是可供其它目录函数closedir(),readdir() 和 rewinddir() 操作的 handle。如果成功则返回目录句柄的resource,失败则返回 FALSE。
例子讲解:

resource opendir ( string $path [, resource $context ] )— 打开目录句柄

 程序代码
<?php
$dir = “/etc/php5/”;
// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
   if ($dh = opendir($dir)) {
       while (($file = readdir($dh)) !== false) {
            echo “filename: $file : filetype: ” . filetype($dir . $file) . “n”;
       }
        closedir($dh);
    }
}
?>

string readdir ( resource $dir_handle )— 从目录句柄中读取条目

输出结果为:
filename: . : filetype: dir
filename: .. : filetype: dir
filename: apache : filetype: dir
filename: cgi : filetype: dir
filename: cli : filetype: dir

复制代码 代码如下:
if ($handle = opendir(‘/path/to/files’)) {
     echo “Directory handle: $handlen”;
     echo “Files:n”;
     while (false !== ($file = readdir($handle))) {
         echo “$filen”;
     }
     closedir($handle);
 }

void rewinddir ( resource $dir_handle ) —将 dir_handle
指定的目录流重置到目录的开头

array scandir ( string $directory [, int $sorting_order [, resource
$context ]] )— 列出指定路径中的文件和目录

复制代码 代码如下:
 $dir    = ‘/tmp’;
 $files1 = scandir($dir);
 $files2 = scandir($dir, 1);
 print_r($files1);
 print_r($files2);

发表评论

电子邮件地址不会被公开。 必填项已用*标注