<?php
$file="../../php";
function list_file($date){
//1、首先先读取文件夹
$temp=scandir($date);
//遍历文件夹
foreach($temp as $v){
$a=$date.'/'.$v;
if(is_dir($a)){//如果是文件夹则执行
if($v=='.' || $v=='..'){//判断是否为系统隐藏的文件.和.. 如果是则跳过否则就继续往下走,防止无限循环再这里。
continue;
}
echo "<font color='red'>$a</font>","<br/>"; //把文件夹红名输出
list_file($a);//因为是文件夹所以再次调用自己这个函数,把这个文件夹下的文件遍历出来
}else{
echo $a,"<br/>";
}
}
}
list_file($file);
==============================
public function bianli1($dir)
{
$files = array();
if($head = opendir($dir))
{
while(($file = readdir($head)) !== false)
{
if($file != ".." && $file!=".")
{
if(is_dir($file))
{
$files[$file]=bianli1($dir.'/'.$file);
}
else
{
$files[]=$file;
}
}
}
}
closedir($head);
return $files;
}
================================
function bianli2()
{
$hostdir= iconv("utf-8","gbk","D:/wamp/www") ;
$filesnames = scandir($hostdir);
foreach ($filesnames as $name) {
if($name!=".." && $name!=".")
{
$cipath = $hostdir.$name;
$cjfilenames = scandir($cipath);
foreach($cjfilenames as $cjname)
{
if($cjname!=".." && $cjname!="." &&!is_dir($cipath."/".$cjname))
{
$str = file_get_contents($cipath."/".$cjname);
file_put_contents("D:/test.txt",$str,FILE_APPEND);
}
}
}
echo "\n";
}
}
===================================
<?php
/**
* 将读取到的目录以数组的形式展现出来
* @return array
* opendir() 函数打开一个目录句柄,可由 closedir(),readdir() 和 rewinddir() 使用。
* is_dir() 函数检查指定的文件是否是目录。
* readdir() 函数返回由 opendir() 打开的目录句柄中的条目。
* @param array $files 所有的文件条目的存放数组
* @param string $file 返回的文件条目
* @param string $dir 文件的路径
* @param resource $handle 打开的文件目录句柄
*/
function my_scandir($dir)
{
//定义一个数组
$files = array();
//检测是否存在文件
if (is_dir($dir)) {
//打开目录
if ($handle = opendir($dir)) {
//返回当前文件的条目
while (($file = readdir($handle)) !== false) {
//去除特殊目录
if ($file != "." && $file != "..") {
//判断子目录是否还存在子目录
if (is_dir($dir . "/" . $file)) {
//递归调用本函数,再次获取目录
$files[$file] = my_scandir($dir . "/" . $file);
} else {
//获取目录数组
$files[] = $dir . "/" . $file;
}
}
}
//关闭文件夹
closedir($handle);
//返回文件夹数组
return $files;
}
}
}
echo "<pre>";
print_r(my_scandir("./aa")); //电脑的文件路径即可
=============================================
<?php
$dir="C:/THsoft"; //这是一个目录地址 也是根目录
if (is_dir($dir)){//判断$dir是否是一个目录
if ($dh=opendir($dir)){//dh变量用来接收opendir的返回信息 如果为真 则执行while
while (($file=readdir($dh))!==false){ //readdir()函数会返回一个文件的名称的
echo "文件名称:".$file."<br/>";
echo "文件大小:".filesize($dir."/".$file)."<br/>"; //使用filesize()函数读取文件大小..参数的文件的路径
echo "修改时间:".date("Y-m-d H:i:s",filemtime($dir."/".$file))."<br/>"; //修改时间使用filemtime() 创建时间使用fileatime()
//类型一般就是后缀..可以对文件的名称进行处理获取后缀信息
$name = explode(".", $file); //将名称以.分隔成数组 最后一个就是后缀了
echo "文件后缀:".$name[count($name)-1]."<br/>";
echo "========================================================================<br/>";
}
closedir($dh);
}
}
?>
======================================
filesize():取得文件大小
filetype():取得文件类型
filemtime():取得文件修改时间
filesize()
filesize() 函数用于取得文件大小,成功返回文件大小的字节数,否则返回 FALSE 。
语法:
int filesize( string filename )
例子:
<?php
$filename = 'test.txt';
echo $filename.'文件大小为: '.filesize($filename).' bytes';
?>
=======================================================
<?php
$size = filesize("upload.php");
function trans_byte($byte)
{
$KB = 1024;
$MB = 1024 * $KB;
$GB = 1024 * $MB;
$TB = 1024 * $GB;
if ($byte < $KB) {
return $byte . "B";
} elseif ($byte < $MB) {
return round($byte / $KB, 2) . "KB";
} elseif ($byte < $GB) {
return round($byte / $MB, 2) . "MB";
} elseif ($byte < $TB) {
return round($byte / $GB, 2) . "GB";
} else {
return round($byte / $TB, 2) . "TB";
}
}
echo trans_byte($size);
======================================
<?php
//给我一个文件夹,返回该文件夹下所有的文件数量
function ShuLiang($url)//造一个方法,给一个参数
{
$sl=0;//造一个变量,让他默认值为0;
$arr = glob($url);//把该路径下所有的文件存到一个数组里面;
foreach ($arr as $v)//循环便利一下,吧数组$arr赋给$v;
{
if(is_file($v))//先用个if判断一下这个文件夹下的文件是不是文件,有可能是文件夹;
{
$sl++;//如果是文件,数量加一;
}
else
{
$sl+=ShuLiang($v."/*");//如果是文件夹,那么再调用函数本身获取此文件夹下文件的数量,这种方法称为递归;
}
}
return $sl;//当这个方法走完后,返回一个值$sl,这个值就是该路径下所有的文件数量;
}
echo ShuLiang("../www/*");//用这个方法查一下该路径下所有的文件数量;
?>
========