PHP学习笔记:处理文件和操作系统

来源:互联网 发布:以前qq网络硬盘 编辑:程序博客网 时间:2024/06/01 09:37
首先是几个基本的文件处理接口


1.解析目录路径
  
  (1)获取路径文件名
  string basename(string path [,string suffix])
  可选参数suffix的作用是:如果返回结果的文件后缀和其匹配,则自动省略该后缀。这个很方便,可以省去在某些需要下对后缀名的进一步文本处理。


  (2)获取路径的目录
  string dirname(string path)


  (3)获取全面路径信息
  array pathinfo(string path [,options])
  功能其实就是切割一个完成的(或相对)的路径名,返回值就是对应的一个关联数组。很一目了然
  返回的索引值分别为'dirname' 'basename' 'extention' 'filename'含义很直白。


  (4)获取绝对路径
  string realpath(string path)


2.计算文件、目录和磁盘大小
  (1)文件大小
  int filesize(string filename)  
  返回的是字节数


  (2)计算磁盘
  float disk_free_space(string directory)
  计算磁盘剩余空间大小
  float disk_total_space(string directory)
  计算磁盘总空间


  (3)计算目录大小也就是文件夹的大小
  PHP不提供这样的函数,一般常用解决此问题的方法就是递归操作。对目录进行递归,然后累加文件的大小值。


  (4)文件访问时间
  int fileatime(string filename)  //access
  文件的最后访问时间  
  int filectime(string filename)  //create
  文件的最后修改时间
  int filemtime(string filename)  //modify


  返回值是unix时间戳格式。用date函数再进行一次可读性转换
  date("m-d-y g:i:sa",fileatime) //不明白字母含义,死记吧   
  显示为 06-09-10 1:26:14pm


2.文件处理
  (1)文件末尾判断
  int feof(string resource)
  判断文件是否已经到达末尾。在c里面,是检查返回值是否为EOF这个宏定义( #define EOF -1)MFC里一些对象也有IsEof这样的接口,作用都一样。


  (2)打开关闭文件
  resource fopen(string resource,string mode [,int use_include_path][,resource context])
  基本用法和c的fopen一样,需要注意的是2个可选参数变化。第三个参数的含义是使用本地路径还是相对路径来访问资源。
  第四个参数则用于多个fopen请求之间共享文件或流的特有信息。
  boolean fclose(resource filehandle)
  关闭文件资源


  (3)读取文件
  array file(string filename[,int use_include_path][,resource context])

  直接将文件读取到数组中,各元素由换行符来分隔。但不会消除换行符。


  file_get_contents()

  将文件数据直接读入一个字符串变量。


  array fgetcsv()
  专门用来读取csv文件(逗号分隔值文件),特殊专用,可替代,知道有这么个东西就可以了。


  string fgets()
  读取指定数目的字符。默认情况下则遇到换行或者EOF停止。和C一样。
  fgetss(resource handle,int length [,string allowable_tags])
  和fgets一样,但是属于PHP特有的,它可以清除指定的html和php标签.


  string fgetc()
  一次读取一个字符。若遇到EOF则返回错误。


  fread()
  常见的读取,读取指定长度或者EOF返回。之前的读取函数跟它的不同之处在于遇到换行就会返回。


  int readfile(string filename [,use_include_path])
  读取整个文件。特点是会立即输出到输出缓冲区并返回读取的字节数。
  注意,可能是习惯问题,这个函数的参数里并没有指定接收的缓冲区,所以其实在PHP里,这里默认的输出缓冲区就是将其
  全部显示到浏览器上。


  fscanf()
  按照定义的格式解析资源。
  mixed fscanf(resource handle,string format [,string var1])
  我觉得这种过于繁琐化也不一定经常用到的生僻功能临时查就可以了。


  (4)写文件
  int fwrite(resource handle,string string [,int length])
  和c写文件的操作别无二致。


  (5)移动文件指针
  int fseek(resource handle,int offset,[,int whence])
  可选参数指定了起点,分为
   SEEK_CUR 距离当前距离offset
   SEEK_END 距离文件末尾的值(此时offset必须为负值)
   SEEK_SET 当前值
  
  ftell()
  获取资源当前文件指针偏移位置
  rewind()
  重置回资源头。这几个东西和C几乎一样。


  (6)读取目录内容
  这个东西很好用,C里面好像没有发现
  opendir可以打开目录流,对应的关闭为closedir
  readdir则可以返回当前目录下的元素,比什么递归好使。
  scandir将目录读入数组


3.一些基于shell的命令函数
  (1)删除目录
  int rmdir(string dirname)条件是目录必须为空,否则,要使用递归函数或者系统级的命令。
  unlink删除文件的目录项并减少连接数——也就是删除文件
  (2)重命名文件
  rename
  (3)触摸文件
  int touch()
  修改文件最后的修改时间值。

  
原创粉丝点击