zoukankan      html  css  js  c++  java
  • PHP常用的文件操作函数集锦

    一、解析路径

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

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

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

    <?php
    $filename = __FILE__;
    echo $filename//C:wampwwwdemo.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:wampwww
    echo '当前命名空间的名称是:'.__NAMESPACE__.'<br>'; // 当前命名空间的名称是:Demo
    echo '当前文件的完成路径和文件名是:'.__FILE__.'<br>'; //当前文件的完成路径和文件名是:C:wampwwwdemo.php
     
    echo '函数的名称是:'.demo1().'<br>'; //函数的名称是:Demodemo1
    function demo1(){
    return __FUNCTION__;
    }
     
    class demo{
    function __construct(){
    echo '当前的类名是:'.__CLASS__.'<br>';
    }
    function demo2(){
    echo '当前调用类的方法是:'. __METHOD__;
    }
    }
    $demo = new demo(); //当前的类名是:Demodemo
    $demo->demo2(); //当前调用类的方法是:Demodemo::demo2
    ?>

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

    string dirname(string $path)

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

    <?php
    $filename = __FILE__;
    echo $filename//C:wampwwwdemo.php
    echo dirname($filename); //C:wampwww
    ?>

    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:wampwwwdemo.php
    var_dump(pathinfo($filename));
    /*array
      'dirname' => string 'C:wampwww' (length=11)
      'basename' => string 'demo.php' (length=8)
      'extension' => string 'php' (length=3)
      'filename' => string 'demo' (length=4)
    */
    echo pathinfo($filename,PATHINFO_DIRNAME);//C:wampwww
    ?>

    二、文件类型

    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:wampwww
    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:wampwww
    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));
    }
    ?>
  • 相关阅读:
    学习笔记:类与类之间的关系
    学习笔记Controller
    学习笔记JPA
    学习笔记dao,domain,service三层理解
    学习笔记@注释
    【练习6.6】拉普拉斯cvLaplace团块及边缘检测、图像数据类型转换cvConvertScaleAbs
    【练习6.5】cvSobel及参数要求、cvCartToPolar坐标空间映射、cvMinMaxLoc求自大最小值、cvAvg求平均值
    【练习6.2】cvFilter2D及3×3高斯核、cvFilter2D当使用一维核时anchor注意事项、float乘法除法注意事项
    【练习6.1】阈值化、腐蚀、cvFilter2D及自定义滤波器
    【练习5.12】阈值化cvThreshold、自适应阈值cvAdaptiveThreshold、各参数效果对比
  • 原文地址:https://www.cnblogs.com/zhouguowei/p/5206378.html
Copyright © 2011-2022 走看看