zoukankan      html  css  js  c++  java
  • PHP文件系统操作文件的类型与属性

    一、PHP中文件系统的类型与属性 PHP文件系统处理,所有文件处理都是使用系统函数完成的。是基于Linux/Unix系统为模型, 在PHP手册的Filesystem 函数可以查到所有的文件操作函数 文件系统处理的作用: 1. 所有的项目离不开文件处理 2. 可以用文件长时间保存数据 3. 建立缓存, 服务器中文件操作 二、文件的类型处理函数 1、文件类型 以Linux为模型的, 在Windows只能获取file, dir或unknow 三种类型 在Linux/Unix下, block, char, dir, fifo, file, link, unknown和种型 block :块设置文件,磁盘分区,软驱, cd-rom等 char: 字符设备,I/O 以字符为单位, 键盘,打印机等 dir: 目录也是文件的一种 fifo: file: 文件 link: 链接文件 unknown 不知道的类型 使用filetype函数可测出文件的类型:filetype("目录或文件名") 2、一些常用的判断函数: is_array(); is_int(); is_string(); is_null; is_bool(); is_dir -- 判断给定文件名是否是一个目录 is_executable -- 判断给定文件名是否可执行 is_file -- 判断给定文件名是否为一个正常的文件 is_link -- 判断给定文件名是否为一个符号连接 is_readable -- 判断给定文件名是否可读 is_uploaded_file -- 判断文件是否是通过 HTTP POST 上传的 is_writable -- 判断给定的文件名是否可写 is_writeable -- is_writable() 的别名 三、文件属性函数 1、 文件的属性函数 file_exists(); //判断文件是否存在 filesize(); //读出文件的大小 is_readable(); // 文件是否可写 is_writeable(); // 文件是否可写 filectime(); // 文件的创建时间,返回的是时间戳 filemtime(); // 文件的修改时间,返回的是时间戳 fileatime(); // 文件的上次访问的时间,返回是时间戳 stat(); // 会以数组的形式返回文件的所有状态 四、相关的代码练习 1、输出文件的类型 echo filetype("hello")."<br>"; echo filetype("demo.txt")."<br>"; if(is_writable("hello")){ echo "这是一个目录"; }else{ echo "这是一个文件"; 2、输出文件的属性 date_default_timezone_set("PRC"); function getFilePro($fileName){ if(!file_exists($fileName)){ echo "文件或目录{$fileName} 不存在<br>"; return; }else{ echo "文件的类型".filetype($fileName)."<br>"; } if(is_file($fileName)){ echo "这是一个文件<br>"; echo "文件的大小为".getFileSize(filesize($fileName))."<br>"; } if(is_dir($fileName)){ echo "这是一个目录<br>"; } if(is_readable($fileName)){ echo "这个文件可以读<br>"; } if(is_writable($fileName)){ echo "这个文件可以写<br>"; } if(is_executable($fileName)){ echo "这个文件可以执行<br>"; } echo "文件的创建时间:".date("Y-m-d H:i:s",filectime($fileName))."<br>"; echo "文件的修改时间:".date("Y-m-d H:i:s",filemtime($fileName))."<br>"; echo "文件的最后访问时间:".date("Y-m-d H:i:s",fileatime($fileName))."<br>"; } function getFileSize($size){ $dw="Byte"; if($size >= pow(2, 40)){ $size=round($size/pow(2, 40), 2); $dw="TB"; }else if($size >= pow(2, 30)){ $size=round($size/pow(2, 30), 2); $dw="GB"; }else if($size >= pow(2, 20)){ $size=round($size/pow(2, 20), 2); $dw="MB"; }else if($size >= pow(2, 10)){ $size=round($size/pow(2, 10), 2); $dw="KB"; }else { $dw="Bytes"; } return $size.$dw; } getFilePro("demo.txt"); getFilePro("hello") 3、输出文件的所有状态,在linux和windows会有所不同 date_default_timezone_set("PRC"); echo '<pre>'; print_r(stat("demo.txt")); echo '</pre>'; 4、设置一个缓存文件的方法 date_default_timezone_set("PRC"); $cache=10; //缓存时间 $cachefile="cache.txt"; //缓存的文件 if(file_exists($cachefile) && (time()-$cache) < filemtime($cachefile)) { echo file_get_contents($cachefile); //如果在缓存的10秒内,就从缓存文件中获取数据 }else{ file_put_contents($cachefile, date("Y-m-d H:i:s", time())); }
  • 相关阅读:
    5.3二叉树的运算
    hadoop namenode切换
    org.apache.hadoop.security.AccessControlException
    Hive中的日志
    命令大全详解
    python深浅copy
    awk命令
    head&tail命令
    cut命令
    理解inode
  • 原文地址:https://www.cnblogs.com/gxldan/p/4066823.html
Copyright © 2011-2022 走看看