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())); }
  • 相关阅读:
    windows的80端口被占用时的处理方法
    Ansible自动化运维工具安装与使用实例
    Tomcat的测试网页换成自己项目首页
    LeetCode 219. Contains Duplicate II
    LeetCode Contest 177
    LeetCode 217. Contains Duplicate
    LeetCode 216. Combination Sum III(DFS)
    LeetCode 215. Kth Largest Element in an Array(排序)
    Contest 176 LeetCode 1354. Construct Target Array With Multiple Sums(优先队列,递推)
    Contest 176
  • 原文地址:https://www.cnblogs.com/gxldan/p/4066823.html
Copyright © 2011-2022 走看看