PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结

在进行PHP编程时,需要对服务器某个目录下面的文件进行浏览,通常成为遍历目录。取得一个目录下的文件和子目录,就需要用到opendir()函数、readdir()函数、closedir()函数和rewinddir()函数。

①函数opendir()

函数opendir()用于打开指定目录,接受一个目录的路径及目录名作为参数,函数返回值为可供其他目录函数使用的目录句柄(资源类型)。如果该目录不存在或者没有访问权限,则返回FALSE。

②函数readdir()

函数readdir()用于读取指定目录,接受已经用opendir()函数打开的可操作目录句柄作为参数,函数返回当前目录指针位置的一个文件名,并将目录指针向后移动一位。当指针位于目录的结尾时,因为没有文件存在则返回FALSE。

③函数closedir()

函数closedir()关闭指定目录,接受已经用opendir()函数打开的可操作目录句柄作为参数。函数无返回值,运行后关闭打开的目录。

④函数rewinddir()

函数reweinddir()倒回目录句柄,接受已经用opendir()函数打开的可操作目录句柄作为参数。将目录指针重置目录到开始处,即倒回目录的开头。

下面用一个实例来说明以上几个函数的使用方法。注意,在使用该例子前请确保同意目录下有phpMyAdmin文件夹。代码如下所示:

代码如下:

<?php
$num = 0; //用来统计子目录和文件的个数
$dirname = 'phpMyAdmin'; //保存当前目录下用来便利的一个目录名
$dir_handle = opendir($dirname); //用opendir打开目录
 
//将遍历的目录和文件名使用表格格式输出
echo '<table border="0" align="center" width="600" cellspacing="0" cellpadding="0">';
echo '<caption><h2>目录'.$dirname.'下面的内容</h2></caption>';
echo '<tr align="left" bgcolor="#cccccc">';
echo '<th>文件名</th><th>文件大小</th><th>文件类型</th><th>修改时间</th>';
 
//使用readdir循环读取目录里的内容
while($file = readdir($dir_handle)){
//将将目录下的文件和当前目录连接起来,才能在程序中使用
$dirFile = $dirname."/".$file;
 
$bgcolor = $num+%2==0 ? '#FFFFFF' : '#CCCCCC'; //各行一种颜色
echo '<tr bgcolor='.$bgcolor.'>';
echo '<td>'.filesize($dirFile).'</td>'; //显示文件名
echo '<td>'.filetype($dirFile).'</td>'; //显示文件大小
echo '<td>'.date("Y/n/t",filemtime($dirFile)).'</td>'; //格式化显示文件修改时间
echo '</tr>';
}
 
echo '</table>';
closedir($dir_handle); //关闭文件操作句柄
echo '在<b>'.$dirname.'</b>目录下的子目录和文件共有<b>'.$num.'</b>个';
?>

上述程序首先打开一个目录指针,并对其进行遍历。遍历目录时,会包括“.”和“..”两个特殊的目录,如果不需要这俩个目录,可以将其屏蔽。当然显示细节会因为文件夹中内容的不同而有所不同。通过上例可见,在PHP中浏览文件夹中的内容也并不是一件多么复杂的事情。而且PHP还提供了一种面向对象的方式用于目录的遍历,通过使用“dir”类完成。不仅如此,PHP也可以按用户的要求检索目录下指定的内容,提供了glob()函数检索指定的目录。该函数最终返回一个包含检索结果的数组。

(0)

相关推荐

  • PHP二分查找算法示例【递归与非递归方法】

    本文实例讲述了PHP二分查找算法.分享给大家供大家参考,具体如下: binarySearch 二分查找采用的方法比较容易理解,以数组为例: ① 先取数组中间的值floor((low+top)/2), ② 然后通过与所需查找的数字进行比较,若比中间值大,则将首值替换为中间位置下一个位置,继续第一步的操作:若比中间值小,则将尾值替换为中间位置上一个位置,继续第一步操作 ③ 重复第二步操作直至找出目标数字 比如从1,3,9,23,54 中查找数字23, 首位置为0, 尾位置为4,中间位置就为2 值为9

  • PHP的Json中文处理解决方案

    本文讲述了PHP的Json中文处理解决方案.分享给大家供大家参考,具体如下: Json是现在被广泛使用的用于传递字符串的格式,相比xml更显得简单易懂以及更方便操作,php下就俩个函数,json_encode() AND json_deconde().不过json对中文的支持并不是很好,如果使用json_encode()处理如数组,数组中若存在中文,则会作空白处理. 解决中文的一种方法就是先将中文转换为另一种编码格式,然后再使用json_encode(),最后再用解码把json串进行解码.还有一

  • php类的自动加载操作实例详解

    本文实例讲述了php类的自动加载操作.分享给大家供大家参考,具体如下: 类的自动加载 在外面的页面中,并不需要去引入类文件,但程序会在需要一个类的时候自动去"动态加载"该类. ① 创建一个对象的时候new ② 直接使用一个类名(操作静态属性与方法) 使用__autoload魔术函数 当出现两种情况时候,就会调用该函数,该函数需要我们预先定义,在其中写好加载类文件的通用语句 function __autoload($name){ require './lib/'.$name.'.clas

  • php opendir()列出目录下所有文件的实例代码

    php opendir()函数用于打开目录,通常与readdir()和closedir()函数一起用来读取目录下所有文件(即遍历目录),本文章向大家介绍php使用opendir()函数列出目录下所有文件的实例. 实例一: 使用opendir()列出目录下所有文件 <?php $dr = @opendir('/tmp/'); if(!$dr) { echo "Error opening the /tmp/ directory!<BR>"; exit; } while((

  • PHP 闭包详解及实例代码

    闭包和匿名函数在PHP5.3.0中引入的. 闭包是指:创建时封装周围状态的函数.即使闭包所处的环境不存在了,闭包中封装的状态依然存在. 理论上,闭包和匿名函数是不同的概念.但是PHP将其视作相同概念. 实际上,闭包和匿名函数是伪装成函数的对象.他们是Closure类的实例. 闭包和字符串.整数一样,是一等值类型. 创建闭包 <?php $clousre = function ($name) { return 'Hello ' . $name; }; echo $closure('nesfo');

  • PHP快速排序quicksort实例详解

    本文实例讲述了PHP快速排序quicksort.分享给大家供大家参考,具体如下: quicksort 在快速排序算法中,使用了分治策略.首先把序列分成两个子序列,递归地对子序列进行排序,直到整个序列排序结束.(即一分为二的思想) 步骤如下: 在序列中选择一个关键元素做为轴: 对序列进行重新排序,将比轴小的元素移到轴的前边,比轴大的元素移动到轴的后面.在进行划分之后,轴便在它最终的位置上: 递归地对两个子序列进行重新排序:含有较小元素的子序列和含有较大元素的子序列. 比如序列$arr: 5 3 0

  • PHP实现QQ快速登录的方法

    前言: PHP实现QQ快速登录,罗列了三种方法 方法一:面向过程,回调地址和首次触发登录写到了一个方法页面[因为有了if做判断], 方法二,三:面向对象 1.先调用登录方法,向腾讯发送请求, 2.腾讯携带本网站唯一对应参数OPENID,ACCESSTOKEN,返回到对应回调页面, 3.回调页面接受到腾讯的参数后,通过这个两个参数,再发出对应的请求,如查询用户的数据. 4.腾讯做出对应的操作,如返回这个用户的数据给你 即使你没看懂,也没关系,按照我下面的流程来,保证你可以实现. 前期准备: 使用人

  • 分享一个漂亮的php验证码类

    本文实例为大家分享了一个漂亮的php验证码类,供大家参考,具体内容如下 //验证码类 class ValidateCode { private $charset = 'abcdefghkmnprstuvwxyzABCDEFGHKMNPRSTUVWXYZ23456789';//随机因子 private $code;//验证码 private $codelen = 4;//验证码长度 private $width = 130;//宽度 private $height = 50;//高度 privat

  • PHP类相关知识点实例总结

    本文实例总结了PHP类相关知识点.分享给大家供大家参考,具体如下: 最终类与最终方法 如果父类中的方法被声明为 final,则子类无法覆盖该方法.如果一个类被声明为 final,则不能被继承. final class a{} class a{ final public function A(){} } 抽象类与抽象方法 abstract class a { public abstract function func(); } class A extends a{ public function

  • PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结

    在进行PHP编程时,需要对服务器某个目录下面的文件进行浏览,通常成为遍历目录.取得一个目录下的文件和子目录,就需要用到opendir()函数.readdir()函数.closedir()函数和rewinddir()函数. ①函数opendir() 函数opendir()用于打开指定目录,接受一个目录的路径及目录名作为参数,函数返回值为可供其他目录函数使用的目录句柄(资源类型).如果该目录不存在或者没有访问权限,则返回FALSE. ②函数readdir() 函数readdir()用于读取指定目录,

  • ES6实现的遍历目录函数示例

    本文实例讲述了ES6实现的遍历目录函数.分享给大家供大家参考,具体如下: // npm init // npm install koa --save-dev // node --harmony app.js const fs = require('fs'); var eachDir = (() => { let queue = []; var eachFiles = (options) => { if (queue.length) { let path = queue.shift(); fs.

  • PHP目录函数实现创建、读取目录教程实例

    今天主要介绍在PHP网站开发中文件目录函数的应用.在PHP网站开发中,我们时常需要读取目录文件信息或者创建目录以存放必要的文件,而当目录文件大小超出规定大小时我们又需要删除目录文件,如手工删除目录即费时又费力,我们完全可以通过PHP自带的目录操作函数实现对目录文件的管理. 本文以实例教程形式讲解如何使用PHP文件目录函数,实例的主要功能:一.利用PHP目录函数创建多个目录,二.在目录下创建文本文件并在文件中写入相关信息,三.递归实现读取(遍历)目录(文件夹)信息并以列表形式列出目录下的所有子目录

  • php目录遍历函数opendir用法实例

    本文实例讲述了php目录遍历函数opendir用法.分享给大家供大家参考.具体分析如下: opendir()函数的作用是:打开目录句柄,如果该函数成功运行,将返回一组目录流(一组目录字符串),如果失败将返回错误[error],你可以在函数的最前面加上"@"来隐藏错误. syntax语法:opendir(directory,context) parameter 参数:description 描述:directory required. specifies the directory to

  • PHP采用自定义函数实现遍历目录下所有文件的方法

    目录的遍历是PHP程序设计中经常会用到的一个功能,很多PHP项目都有这一功能模块.今天本文就来实例解析一下PHP采用自定义函数实现遍历目录下所有文件的方法.具体方法如下: 方法一:使用readir()遍历目录 实现代码如下: function listDir($dir) { if(is_dir($dir)) { if($handle = opendir($dir)) { while($file = readdir($handle)) { if($file != '.' && $file !

  • PHP使用glob函数遍历目录或文件夹的方法

    本文实例讲述了PHP使用glob函数遍历目录或文件夹的方法.分享给大家供大家参考.具体分析如下: 一说到php遍历目录我们很多朋友会想到是opendir与readdir,这样就可以遍历目录并显示文件,但在php中有一个更简洁的遍历目录的函数glob估计很少有人知道此函数,不过我觉得比起opendir与readdir要简单多了. PHP glob函数的使用:glob-寻找与模式匹配的文件路径. 例子,代码如下: 复制代码 代码如下: <?php $fileList=glob('*.*'); for

  • php中目录操作opendir()、readdir()及scandir()用法示例

    本文实例讲述了php中目录操作opendir().readdir()及scandir()用法.分享给大家供大家参考,具体如下: opendir(path,context)若成功,则该函数返回一个目录流,否则返回 false 以及一个 error.可以通过在函数名前加上 "@" 来隐藏 error 的输出. readdir() 函数返回由 opendir() 打开的目录句柄中的条目.若成功,则该函数返回一个文件名,否则返回 false. scandir() 函数返回一个数组,其中包含指定

  • php遍历目录viewDir函数

    复制代码 代码如下: <?php /** * 遍历目录,找出目录下某个后缀名的所有文件 * */ function viewDir ($directory, $ext) { if (is_dir($directory)) { $handle = opendir($directory); while ($file = readdir($handle)){ $subdir = $directory . '/' .$file; if ($file != '.' && $file !='..

  • asp遍历目录及子目录的函数

    <%@ Language=vbscript %>  <%   '遍历目录以及目录下文件的函数  %>  <%    Function Bianli(path)      Set Fso=server.createobject("scripting.filesystemobject") On Error Resume Next      Set Objfolder=fso.getfolder(path) Set Objsubfolders=objfolder

  • 遍历目录以及目录下文件的函数

    <%@ Language=VBScript %> <% '遍历目录以及目录下文件的函数, %> <% function bianli(path) set fso=server.CreateObject("scripting.filesystemobject") on error resume next set objFolder=fso.GetFolder(path) set objSubFolders=objFolder.Subfolders for e

随机推荐