/* * 遍历目录 * fopen() * fread() * fclose() * @opendir(目标路径);E_WARNINE * readdir(目录引用句柄) rewinddir() * closedir() * * 在程序设计中,句柄是一种特殊的智能指针 。当一个应用程序要引用其他系统(如数据库、操作系统) * 所管理的内存块或对象时,就要使用句柄。句柄与普通指针的区别在于, * 指针包含的是引用对象的内存地址,而句柄则是由系统所管理的引用标识, * 该标识可以被系统重新定位到一个内存地址上。这种间接访问对象的模式增强了系统对引用对象的控制。 * (脚本学堂 bbs.it-home.org) */ $dirHandle=@opendir("phpMyAdmin") or die("打开目录不成功"); echo "phpMyAdmin 目录下所有内容是: "; echo readdir($dirHandle).""; echo readdir($dirHandle).""; while(($file=readdir($dirHandle))!==false) { $file="phpMyadmin".DIRECTORY_SEPARATOR.$file; if(is_dir($file)) { echo "目录: ".$file.""; }else { echo "文件: ".$file."文件大小: ".filesize($file)."KB"; } } rewinddir($dirHandle); //返回句柄开始,重新遍历一次 while(($file=readdir($dirHandle))!==false) { $file="phpMyadmin".DIRECTORY_SEPARATOR.$file; if($file!="."&&$file!="..") //直接不读 { if(is_dir($file)) { echo "目录: ".$file.""; }else { echo "文件: ".$file."文件大小: ".filesize($file)."KB"; } } } closedir($dirHandle); ?> 复制代码 例2, /* * 遍历目录 * * class dir{ * string path; * resource handle; * string read(void); * void rewind(void); * void close(void); * } * * 在程序设计中,句柄是一种特殊的智能指针 。当一个应用程序要引用其他系统(如数据库、操作系统) * 所管理的内存块或对象时,就要使用句柄。句柄与普通指针的区别在于, * 指针包含的是引用对象的内存地址,而句柄则是由系统所管理的引用标识, * 该标识可以被系统重新定位到一个内存地址上。这种间接访问对象的模式增强了系统对引用对象的控制。 * */ $d = dir("phpMyAdmin"); echo "路径是:".$d->path.""; echo "引用句柄是: ". $d->handle.""; // $d->read(); // $d->read(); while(($file=$d->read())!==false) { if($file!="."&&$file!="..") { echo $file.""; } } $d->close(); ?> 复制代码