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

一、解析路径

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));
}
?>

时间: 2024-11-09 16:45:01

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

【阅读笔记】《C程序员 从校园到职场》第六章 常用文件操作函数 (Part 1)

参考链接:https://blog.csdn.net/zhouzhaoxiong1227/article/details/24926023 让你提前认识软件开发(18):C语言中常用的文件操作函数总结及使用方法演示代码 - CSDN博客 Contents: 1. C语言中常用的文件操作函数总结 (1) fopen   作用:打开文件 (2) fclose  作用:关闭文件 (3) fgetc   作用:由文件中读取一个字符. (4) fgets   作用:由文件中读取一字符串. (5) fflu

LINUX/UNIX的文件操作函数

本文用于记录在LINUX编程中,常用的文件操作函数,包括系统调用和库函数,以备查阅. 针对输入输出操作,直接使用底层系统调用的一个问题是它们的效率十分低,原因在于: 1.使用系统调用会影响系统的性能,与函数调用相比,系统调用的开销要大些,因为在执行系统调用时,Linux必须从运行用户代码切换到执行内核代码,然后再返回用户代码. 2.硬件会限制对底层系统调用一次所能读写的数据块大小.比如,磁带机通常一次能写的数据块长度是10K,所以若你试图写的数据量不是10K的整数倍,磁带机还是以10K为单位卷绕

总结文件操作函数(二)-C语言

格式化读写: #include <stdio.h> int printf(const char *format, ...);                   //相当于fprintf(stdout,format,-); int scanf(const char *format, -); int fprintf(FILE *stream, const char *format, ...);      //中间的参数为写入文件的格式 int fscanf(FILE *stream, const

总结文件操作函数-目录(三)-C语言

获取.改变当前目录: 原型为: #include <unistd.h>   //头文件 char *getcwd(char *buf, size_t size); //获取当前目录,相当于pwd命令 int chdir(const char *path); //修改当前目录,即切换目录,相当于cd命令 其中getcwd()函数:将当前的工作目录绝对路径复制到参数buf所指的内存空间,参数size为buf的空间大小. 在调用此函数时,buf所指的内存空间要足够大,若工作目录绝对路径的字符串长度超

C语言文件操作函数的编写

 编写文件操作的头文件 /************************************************************************** Copyright(C)    :2014-08-5 toto Filename       :file.h Author          :涂作权 Version         :V1.1 Date            :2014-08-05 Description     :文件操作的头文件 Others  

c语言文件操作函数

c语言文件操作函数大全 fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const char * mode); 函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态. mode有下列几种形态字符串: r 打开只读文件,该文件必须存在. r+ 打开可读写的文件,该文件必须存在. w 打开只写文件,若文件存在则文件长度清为0,即该文件

C语言样式的文件操作函数

使用C语言样式的文件操作函数,需要包含stdio.h头文件. 1.打开文件的函数: 1 //oflag的取值为“w”或“r”,分别表示以写或读的方式打开 2 FILE* fd = fopen(filename.c_str(), oflag); 2.写文件的函数原型: size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream ); 其中buffer是需要向文件中写入的内容在内存中的首地址指针,size是待写入

PHP5.4 文件操作函数 之 图片计数器的实例

1.访问文件或者文件夹相关函数 <?php echo filetype('c:\windows').'<br>'; ?> <?php echo filetype('c:\windows\regedit.exe').'<br>'; ?> <?php $arr=scandir("c:\\"); var_dump($arr); ?> <?php $arr=scandir("c:\\"); foreach($

PHP部分文件操作函数

1 (1)  fopen 打开文件函数  (R-只读 W-写入 A-读写) fopen (路径和文件名,打开方式) 2  fread 读取文件内容 (字节为单位) 3 (3)  filesize 读取文件大小,字节为计量单位 filesize (路径和文件名) 4 (4)  fwrite 写入文件内容 fwrite (路径和文件名,写入的内容) (5)  fclose 关闭打开的文件 fclose (路径和文件名) PHP部分文件操作函数,布布扣,bubuko.com