iT氪 IT人的社区

iT氪 IT人的社区

php列出一个目录下的所有文件的代码

来源:网络
发布:小码农
时间:2017-05-20
浏览:1537 次
#评论#
使用php的glob函数可以列出所有符合路径结构的文件和目录,以下从某cms提取出来的函数
<?php 
function dir_path($path) { 
$path = str_replace('\\', '/', $path); 
if (substr($path, -1) != '/') $path = $path . '/'; 
return $path; 
} 
/** 
* 列出目录下的所有文件 
* 
* @param str $path 目录 
* @param str $exts 后缀 
* @param array $list 路径数组 
* @return array 返回路径数组 
*/ 
function dir_list($path, $exts = '', $list = array()) { 
$path = dir_path($path); 
$files = glob($path . '*'); 
foreach($files as $v) { 
if (!$exts || preg_match("/\.($exts)/i", $v)) { 
$list[] = $v; 
if (is_dir($v)) { 
$list = dir_list($v, $exts, $list); 
} 
} 
} 
return $list; 
} 
?> 

使用方法: 

<?php 
$r = dir_list('dir'); 
printf("<p>输出数据为:</p><pre>%s</pre>\n", var_export($r , true)); 
?> 

PHP函数-用来列出目录下所有文件2 

采用PHP编写的函数,用来列出指定目录下的所有的文件。 
函数后面带有一个使用的示例代码。 
注意:如果页面是utf-8的,在window中文版本的系统中,读取中文的文件名的时候会出现乱码。 

<?php 
/* 函数 listDirTree( $dirName = null ) 
** 功能 列出目录下所有文件及子目录 
** 参数 $dirName 目录名称 
** 返回 目录结构数组 false为失败 
*/ 
function listDirTree( $dirName = null ) 
{ 
if( empty( $dirName ) ) 
exit( "IBFileSystem: directory is empty." ); 
if( is_dir( $dirName ) ) 
{ 
if( $dh = opendir( $dirName ) ) 
{ 
$tree = array(); 
while( ( $file = readdir( $dh ) ) !== false ) 
{ 
if( $file != "." && $file != ".." ) 
{ 
$filePath = $dirName . "/" . $file; 
if( is_dir( $filePath ) ) //为目录,递归 
{ 
$tree[$file] = listDirTree( $filePath ); 
} 
else //为文件,添加到当前数组 
{ 
$tree[] = $file; 
} 
} 
} 
closedir( $dh ); 
} 
else 
{ 
exit( "IBFileSystem: can not open directory $dirName."); 
} 
//返回当前的$tree 
return $tree; 
} 
else 
{ 
exit( "IBFileSystem: $dirName is not a directory."); 
} 
} 
$files = listDirTree("."); 
//print_r($files); 
$size = count(files); 
//以下代码是创建一个本目录下文件的列表(带有链接地址) 
echo '<ol>'; 
for( $i=0; $files[$i] != NULL; $i++ ) { 
echo '<li><a href="'.($files[$i]).'" target="_blank">'.$files[$i].'</a></li>'; 
} 
echo '</ol>'; 
?> 

 

收藏 (0) +1 (3) +1 (0) +1

相关阅读

PHP中文件读、写、删的操作(PHP中对文件和目录操作)

PHP中文件读、写、删的操作(PHP中对文件和目录操作)

一:目录操作     首先介绍的是一个从目录读取的函数,opendir(),readdir(),closedir(),使用的时候是先打开文件句柄,而后迭代列出:  <?php   $base_dir = "filelist/";   $fso = opendir($base_dir);   echo $base_dir."<hr/>" ;   while($flist=readdir($fso)){   echo $flist."<br/>" ;   }   closedir($fso)   ?>...

smarty中section的嵌套用法

smarty中section的嵌套用法

因为是用smarty做为模版引擎的,而我能简单的用section作为循环输出数据,但是,如果是这种情就令我不知所措了: 文章的分类是可以动态改变的,也就是说需要循环输出,而在每个分类版块里面又各显示5条文章链接的.也是就通常所说的嵌套输出啦. 晕,section中的嵌套用法一时摸不着头,看了smarty的文档帮助更是头晕了,不知所云!! 幸好,在网上找了这个资料,让我轻松搞掂啦!!现发上来大家参考. 程序部分内容: $query = “SELECT id,name,name_cn FROM di_flag ORDER BY id desc”; $result...

十个超级有用的PHP代码片段

十个超级有用的PHP代码片段

1. 发送短信 调用 TextMagic API。 // Include the TextMagic PHP lib require('textmagic-sms-api-php/TextMagicAPI.php'); // Set the username and password information $username = 'myusername'; $password = 'mypassword'; // Create a new instance of TM $router = new TextMagi...

php生成随机颜色方法汇总

php生成随机颜色方法汇总

方法一: 随机生成颜色值(例如 FF00FF). color.php function random_color(){ mt_srand((double)microtime()*1000000); $c = ''; while(strlen($c)<6){ $c .= sprintf("%02X", mt_rand(0, 255)); } return $c; } 方法二: function randrgb() { $str='0123456789ABCDEF'; ...

PHP直接下载CSV文件

PHP直接下载CSV文件

用PHP代码下载CSV文件,可以是字符串,也可以是一个CSV文件。 第一段是读文件,下载。 <?php $fileName = "prefs.csv"; header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . $fileName); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . filesize($fileName))...