<?php
/* 解析目录路径函数:basename()、dirname()、pathinfo()
遍历目录函数:opendir()、readdir()、closedir()、rewinddir()
*/
Class FilePath{
private $pathName;
protected $dir_path;
public function __construct($path,$pathdir){
$this->pathName = $path;
$this->dir_path = $pathdir;
$this->base_name();
$this->dir_name();
$this->path_info();
$this->dirlist($this->dir_path);
}
//返回路径中文件名的部分
private function base_name(){
echo basename($this->pathName).nl2br("\n");//返回结果:array.php
echo basename($this->pathName,'.php').nl2br("\n");//返回结果:array
}
//和函数basename相反,只需要一个参数,返回一个除文件名外的全路径字符串
private function dir_name(){
echo dirname($this->pathName).nl2br("\n");//返回目录名:/web/lamp/php
echo dirname("D:/").'<br>';//返回目录名:D:/
}
//返回的数组,我们很清楚的看到,他们的键值就是我们所用到的函数,他们的value是我们函数返回的数据
private function path_info(){
$fileList = pathinfo($this->pathName);
//sprint_r($fileList);//返回数组:Array ( [dirname] => /web/lamp/php [basename] => array.php [extension] => php [filename] => array )
}
//目录遍历
private function dirlist($pathname){
//$dir_name = '../php';
if($open = opendir($this->dir_path)){
while($filename = readdir($open)){
$pathname = $this->dir_path.'/'.$filename;
echo $pathname.' '."文件大小为:".filesize($filename).' '."文件属性为:".filetype($filename).'<br>';
if($filename!='.' && $filename!='..'){
if(is_dir($pathname)){
$dir_size+=$this->dirlist($pathname);
echo $dir_size.'----------------<br>';
}
if(is_file($pathname)){
$dir_size+=filesize($pathname);
//echo $dir_size.'----------------<br>';
}
}
}
}
closedir($open);
return $dir_size;
}
}
$path = '/web/lamp/php/array.php';
$dir_path = '../php';
$list = new FilePath($path,$dir_path);
?>