您的位置:首页 > 编程语言 > PHP开发

PHP常用的文件操作函数集锦

2016-02-22 10:36 381 查看
一、解析路径

1、basename--返回路径中的文件名部分

string basename(string $path [,string $suffix])

给出一个包含指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以suffix结束的,那这一部分也会被去掉。

<?php
$filename = __FILE__;
echo $filename; //C:\wamp\www\demo.php
echo basename($filename); //demo.php
echo basename($filename,'.php'); //demo
?>扩展内容--魔术常量:

__LINE__:文件中当前的行号

__FILE__:文件的完成路径和文件名

__DIR__:文件所在的目录,等价于dirname(__FILE__)

__FUNCTION__:函数名称

__CLASS__:类的名称

__METHOD__:类的方法名

__NAMESPACE__:当前命名空间的名称

<?php
namespace Demo;
header("content-type:text/html;charset=utf-8");
echo '当前的行号是:'.__LINE__.'<br>'; //当前的行号是:4
echo '当前文件所在的目录是:'.__DIR__.'<br>'; //当前文件所在的目录是:C:\wamp\www
echo '当前命名空间的名称是:'.__NAMESPACE__.'<br>'; // 当前命名空间的名称是:Demo
echo '当前文件的完成路径和文件名是:'.__FILE__.'<br>'; //当前文件的完成路径和文件名是:C:\wamp\www\demo.php

echo '函数的名称是:'.demo1().'<br>'; //函数的名称是:Demo\demo1
function demo1(){
return __FUNCTION__;
}

class demo{
function __construct(){
echo '当前的类名是:'.__CLASS__.'<br>';
}
function demo2(){
echo '当前调用类的方法是:'. __METHOD__;
}
}
$demo = new demo(); //当前的类名是:Demo\demo
$demo->demo2(); //当前调用类的方法是:Demo\demo::demo2
?>

2、dirname()--返回路径的目录部分

string dirname(string $path)

给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名

<?php
$filename = __FILE__;
echo $filename; //C:\wamp\www\demo.php
echo dirname($filename); //C:\wamp\www
?>3、pathinfo()--返回文件路径的信息

mixed pathinfo(string $path [,int $option])

返回一个关联数组包含有path的信息。包括以下的数组单元:dirname、basename和extension。

可以通过参数option指定要返回哪些单元。它们包括PATHINFO_DIRNAME、PATHINFO_BASENAME和PATHINFO_EXTENSION。

<?php
$filename = __FILE__;
echo $filename; //C:\wamp\www\demo.php
var_dump(pathinfo($filename));
/*array
'dirname' => string 'C:\wamp\www' (length=11)
'basename' => string 'demo.php' (length=8)
'extension' => string 'php' (length=3)
'filename' => string 'demo' (length=4)*/
echo pathinfo($filename,PATHINFO_DIRNAME);//C:\wamp\www
?>二、文件类型

1、filetype()--取得文件类型

string filetype(string $filename);

返回文件的类型。可能的值有fifo,char,dir,block,link,file和unknown。

<?php
$filename = __FILE__;
echo filetype($filename);//file
$dirname = dirname($filename);
echo filetype($dirname);//dir
?>三、得到给定文件有用信息数组

1、fstat()--通过已打开的文件指针取得文件信息

array fstat(resource $handle);

获取由文件指针handle所打开文件的统计信息。

本函数和stat()函数相似,除了它是作用于已打开的文件指针而不是文件名

<?php
$handle = fopen('common_inc.php','r');
var_dump(fstat($handle));
fclose($handle);
var_dump(stat('common_inc.php'));
/*array
0 => int 0
1 => int 0
2 => int 33206
3 => int 1
4 => int 0
5 => int 0
6 => int 0
7 => int 49
8 => int 1455851675
9 => int 1455851686
10 => int 1455851675
11 => int -1
12 => int -1
'dev' => int 0
'ino' => int 0
'mode' => int 33206
'nlink' => int 1
'uid' => int 0
'gid' => int 0
'rdev' => int 0
'size' => int 49
'atime' => int 1455851675
'mtime' => int 1455851686
'ctime' => int 1455851675
'blksize' => int -1
'blocks' => int -1*/
?>四、计算大小

1、filesize()--取得文件大小

int filesize(string $filename);

返回文件大小的字节数。

<?php
echo filesize('common_inc.php');//49
?>2、disk_free_space()--返回目录的可用空间

float disk_free_space(string $directory)

给出一个包含一个目录的字符串,本函数将根据相应的文件系统或磁盘分区返回可用的字节数。

<?php
$dirname = dirname(__FILE__);
//echo $dirname;//C:\wamp\www
echo disk_free_space($dirname);//返回可用的字节数
// $df 包含根目录下可用的字节数
echo disk_free_space("/");
//在 Windows 下:
echo disk_free_space("C:");
echo disk_free_space("D:");
?>
3、disk_total_space()--返回一个目录的磁盘总大小
Float disk_total_space(string $directory)
给出一个包含一个目录的字符串,本函数将根据相应的文件系统或磁盘分区返回所有的字节数。
<?php
$dirname = dirname(__FILE__);
//echo $dirname;//C:\wamp\www
echo disk_total_space($dirname);//返回目录的总大小
// $df 包含 "/" 目录的磁盘大小
echo disk_total_space("/");

//在 Windows 下:
echo disk_total_space("C:");
echo disk_total_space("D:");
?>另:如需要计算一个目录大小,可以编写一个递归函数实现

<?php
$dirname = dirname(__FILE__);
echo dir_size($dirname);
function dir_size($dir){
$dir_size = 0;
if($db = @opendir($dir)){
while(false !== ($filename = readdir($db))){
if($filename != '.' && $filename != '..'){
if(is_file($dir.'/'.$filename)){
$dir_size += filesize($dir.'/'.$filename);
}elseif(is_dir($dir.'/'.$filename)){
$dir_size += dir_size($dir.'/'.$filename);
}
}
}
}
closedir($db);
return $dir_size;
}
?>

五、访问与修改时间

1、fileatime()--取得文件上次访问的时间

2、filectime()--取得文件的inode修改时间

3、filemtime()--取得文件修改时间

int fileatime(string $filename)

返回文件上次被访问的时间,如果出错则返回false。时间以unix时间戳的方式返回。

<?php
header("content-type:text/html; charset='utf-8'");
$filename = basename(__FILE__);
//$filename = 'common_inc.php';
if(file_exists($filename)){
echo fileatime($filename);
echo $filename.'上次被访问的时间是:'.date('Y-m-d H:i:s',fileatime($filename));
}
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: