用户名:  密码:   
您当前的位置:首页 > 网页设计 >  PHP > 

第13讲 目录概述,文件的打开关闭,读取写入,复制删除重命名,获取大小日期,目录的新建,打开,浏览,删除

上次修改时间: 2022-03-24 17:17:02      来源:网络总结      作者:钢铁长陈
上一页      路径:DSD\Learn\PHP相关\      下一页

第13讲 目录概述,文件的打开关闭,读取写入,复制删除重命名,获取大小日期,目录的新建,打开,浏览,删除

13.1 概述
13.2 文件处理
 1)打开文件
  resource fopen(string filename, string mode [, bool use_include_path)
  参数filename为要打开的文件名(包含路径,可是绝对或相对路径)
  参数mode为打开方式
  参数use_include_path可选,为配置文件php.ini中的参数项,其值是个路径,要在这个路径下打开文件时将其值设为1或true
 2)关闭文件
  bool fclose(resource handle);
  用以将参数handle指向的文件关闭,成功返回true,否则返回false
 3)从文件读数据,可读一个字符或一行字串或整个文件,或任意长度
 4)readfile()函数,读入一个文件并写入到输出缓冲,出错返回false
  int readfile(string filename)
  //用该函数不需要打开/关闭文件,不需要echo/print等输出语句,直接写出文件路径即可
  例:readfile('tm.txt'); //读取当前目录下的tm.txt
 5)file()函数,也可读整个文件的内容,只是该函数是将文件内容按行放到数组,包括换行符,失败返回false
  array file(string filename)
  例:$f_arr = file('tm.txt');
   foreach($f_arr as $cont){
    echo $cont."<BR>";
   }
 6)file_get_contents()函数 适用于二进制文件,是将一个二进制文件读入到一个字串中的首选方式
  string file_get_contents(string filename[, int offset[, int maxlen]])
  //从文件filename中的偏移offset处开始读取长度为maxlen的内容,如失败返回false
  例:$f_chr = file_get_contents('tm.txt');
   echo $f_chr;
 7)读取一行数据的fgets()和fgetss()
  a. fgets()函数,用于读取一行数据
   语法:string fgets(int handle [, int length])
   例:$fopen = fopen('fun.php','rb');
    while(!feof($fopen)){
     echo fgets($fopen);
    }
    fclose($fopen);
  b. fgetss()函数,fgets()的变体,用于读取一行数据,同时会过滤掉所读内容中的html和php标记
   string fgetss(resource handel [, int length [, string allowable_tags]]
    //该函数会支掉所读内容中的任何html和php标记
    //参数allowable_tags用来控制那些标记保留
   例:$fopen = fopen('fun.php','rb');
    while(!feof($fopen)){
     echo fgetss($fopen);
    }
    fclose($fopen);
  c. fgetc()函数,返回一个字符,
   string fgetss(resource handel) //返回handle指向文件中的一个字符,碰到eof则返回false
 8)使用fwrite()和file_put_contents()函数写入数据 
  a. fwrite()函数
   语法:int fwrite(resource handel, string string [, int length])
    //把字串string写入到指针handle指向的文件
    //length可选,当写入length长度后停止写入
  b. file_put_contents()函数
   语法:int file_put_contents(string filename, string data [, int flags])
    //PHP5新加函数,相当于依次调用,fopen(),fwrite(),fclose()一样的
   例:$filepath = "05.txt";
    $str = "aabbcceeffgg<br>";
    echo "用fwrite函数写入文件:";
    $fopen = fopen($filepath,'wb') or die('文件不存在');
    fwrite($fopen,$str);
    fclose($fopen);
    readfile($filepath);
    echo "<p>用file_put_contents函数写入文件";
    file_put_contents($filepath,$str);
    readfile($filepath);
 9)操作文件,复制,重命名,查看修改日期,删除,获取大小等
  a. 复制 bool copy(string path1,string path2) //将文件从path1复制到path2,成功返回true,失败返回false
  b. 重命名 bool rename(;string,filename1, string filename2) //把name1命名为name2
  c. 删除 bool unlink(string filename)
  d. 返回最后访问时间 bool fileatime(string filename)
  e. 返回最后修改时间 bool filemtime(string filename)
  f. 得到文件的大小 bool filesize(string filename)
 10)返回文件路径信息的数组函数
  array pathinfo(string name [, int options])
   //返回文件路径信息,包含目录,文件名,扩展名等,dirname,basename,extension
  string realpath(stringfilename) //返回文件filename的绝对路径
  array stat(string filename)  //返回一个数组,包含文件大小,最后修改时间等
 11)除file(),readfile()等少数函数外,其他操作要先用fopen打开文件,最后用fclose关闭文件
  filesize,filemtime等不需要打开文件
13.3 目录处理相关函数,要浏览目录下文件,要经过打开目录,浏览目录,关闭目录三步
 注:目录是特殊的文件,对文件操作的函数多数适用于目录,如重命名等
 1)用opendir()函数打开目录
  resource opendir(string path)
   //参数path为目录路径
   //执行函数后返回目录的指针,出错则返回false并产生个E_WARNING级别的错误信息,可在函数前加@禁止输出错误信息
 2)用closedir()函数关闭目录
  void closedir(resource handle)
   //参数handle为opendir执行后返回的目录指针
 3)用scandir浏览目录中文件
  array scandir(string directory [,int sorting_order]
  //函数执行后返回directory中所有文件和目录的数组
  //可选参数sorting_order用以指定排序顺序,默认按字母升序排序
 4)用mkdir()函数新建目录 
  bool mkdir(string pathname)
 5)用rmdir()函数删除目录
  bool rmdir(string pathname)
 6)用getcwd()函数取得当前工作目录
  string getcwd(void)
 7)用chdir()函数改变当前目录
  bool chdir(string directory)
 8)其它函数
  float disk_free_space(string directory) //返回目录可用空间字节
  float disk_total_space(string directory) //返回目录总空间
  string readdir(resource handle)   //返回目录中下一个文件的文件名
  void rewinddir(resource handdel)  //将指定目录重新指到目录的开头