1.遍历文件夹和文件
/**
* [scanDir 遍历文件夹下的所有文件]
* @param [type] $dir [description]
* @return [type] [description]
*/
function scanDir ( $dir ){
$result = array();
$handle = opendir($dir);
if ( $handle )
{
while ( ( $file = readdir ( $handle ) ) !== false )
{
if ( $file != '.' && $file != '..')
{
$cur_path = $dir . DIRECTORY_SEPARATOR . $file;
if ( is_dir ( $cur_path ) )
{
$result['dir'][$cur_path] = scanDir ( $cur_path );
}
else
{
$result[] = $file;
}
}
}
closedir($handle);
}
return $result;
}
2.获取文件后缀名
/**
* 获取文件名后缀
* @param [type] $filename [description]
* @return [type] [description]
*/
function getFileExt($filename){
$fileExt = substr($filename, strrpos($filename, '.'));
return str_replace('.','',$fileExt);
}
3.格式化文件大小
/**
* 格式化文件大小
* @param [type] $filename [文件路径+文件名]
* @return [type] [description]
*/
function getFormatSize($filename) {
if(!is_file($filename)) return false;
$size = filesize($filename);
$sizes = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");
if ($size == 0) {
return('n/a');
} else {
return (round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizes[$i]);
}
}
4.遍历指定目录下的文件夹和文件(非递归)
具体用法:
第一种:glob函数的参数里面是:*.*
,意思是扫描当前目录下的文件,不包括文件夹,返回的是一个数组.
第二种:glob函数的参数里面是:images/*
,是指定目录扫描所有的文件,包括文件夹,也可以扫描指定的文件类型,如:images/*.jpg
;注意,如果只输入:images
只会返回该文件夹名称,如果只输入:images/
则什么也不会返回.
第三种:glob函数的参数里面是:*
,可以扫描出当前目录下的所有文件、目录及子目录的文件.
如果不需要递归遍历文件夹,则用glob函数可以很方便的取出文件内容
未完待续……