PHP实战中知识总结 / 文件处理函数

文件处理函数主要应用于文件上传,在THINKPHP框架中,已经集成了相关的方法来实现上传功能,具体实例请看第八章项目经验-图片上传项目实例。这里就简单整理出一些常用的php原生方法,有时候如果不使用框架自带方法的话,还是需要使用这些函数来进行上传方法的封装。

1、fopen()

该函数用于打开文件或者创建文件。如果所带参数是w或a时,当打开并不存在的文件时,则会创建这个文件。如果所带参数为r或r+,当打开并不存在的文件时,则会抛出异常警告。

2、fclose()

函数用于关闭一个打开文件。

3、fwrite()

fputs() 函数的别名。该函数用于写入文件。返回写入的字符数,出现错误时则返回 false。每次执行都会覆盖文件内容。

4、fread()

fread(file,length) 该函数用于读取文件;第一个参数是要读取打开文件,第二个参数是要读取的最大字节数。

文件创建-写入-读取代码实例:

<?php
 /**
  * 使用fopen打开以w+方式 打开newfise.txt文件,如果文件不存在,则会创建文件。
  * echo 返回的是字节数: 11
  */
 $myfile = fopen("newfise.txt", "w+") or die("Unable to open file!");
 $txt = "Bill Gates\n";
 echo fwrite($myfile, $txt);
 fclose($myfile);

  /**
  * 使用fread读取文件。
  */
 $file = fopen("newfile.txt","r");
 echo fread($file,filesize("newfile.txt")); // 读取整个文件
 echo fread($file,filesize("10")); // 从文件中读取 10 个字节
 fclose($file);
 /**
  * 如果fopen以r参数打开不存在的文件
  */
 $file = fopen("newfilse.txt","r");
  Warning: fopen(newfilse.txt): failed to open stream: No such file or directory in

5、file_put_contents()

file_put_contents(file,data,mode,context) 函数把一个字符串写入文件中。该函数将返回写入到文件内数据的字节数。

(1)该函数等同于依次调用 fopen(),fwrite() 以及 fclose(),相比之下代码量减少,在调试和维护上更加便捷。

(2)该函数的mode参数,使用 FILE_APPEND,可以实现内容追加效果,不会删除文件内已有的内容。

6、file_get_contents()

file_get_contents(path,include_path,context,start,max_length) 函数是用于将文件的内容读入到一个字符串中的首选方法。

path:必须,规定要读取的文件。

include_path:可选,如果要在include_path中搜索文件的话,可以将该参数设为1

context:可选,规定文件句柄的环境

start:可选,规定在文件中开始读取的位置

max_length:可选,要读取的字节数

7、file_exists()

该函数检查文件或目录是否存在。如果指定的文件或目录存在则返回 true,否则返回 false。

8、move_uploaded_file()

move_uploaded_file(file,newloc) 函数将上传的文件移动到新位置。常用于文件上传。

9、unlink()

unlink() 函数删除文件。

若成功,则返回 true,失败则返回 false。

<?php
  $file = "test.txt";
  if (!unlink($file))
   {
   echo ("Error deleting $file");
   }
  else
   {
   echo ("Deleted $file");
   }
?>

PHP实战中知识总结