1、前言
工作中涉及到数据处理,后台需要用到PHP处理数据,之前没有接触过PHP,借此机会了解了一下PHP,PHP很方便,很灵活,编码很舒服,很喜欢用PHP处理后台数据。今天总结一下php文件操作,主要涉及到文件打开、读、写和关闭。
2、PHP文件操作API
文件创建/打开
- fopen:(创建并)打开一个文件或 URL 地址。
文件写入
- fwrite:向文件写入内容,可安全用于二进制文件 。
- file_put_contents:向文件写入内容,等同依次调用 fopen,fwrite 以及 fclose 函数。
文件读取
- fread:读取文件,可安全用于二进制文件。
- fgets:从文件中读取 一行 数据,并将文件指针指向下一行。
- fgetc:从文件中 逐字 读取文件数据,直到文件结束。
- file_get_contents:把 整个文件 读入一个字符串。
- file:把 整个文件 读入一个数组中,数组中的每个单元都是文件中相应的一行。
检查文件是否存在
- file_exists:检查文件或目录是否存在。
检查文件是否可读写执行
- is_readable:检查文件是否可读。
- is_writable:检查文件是否是否可写入。
- is_executable:检查文件是否可执行。
文件拷贝
- copy:拷贝文件。
文件删除
- unlink:删除文件。
取得文件大小、类型、修改时间信息
文件指针函数
3、测试程序
1 <?php 2 3 const FILE_NAME = "file_info.dat"; 4 5 class file_info 6 { 7 public $file_name; 8 public $self_count; 9 public $total_count; 10 } 11 12 //判断文件是否存在 13 if (file_exists(FILE_NAME)) 14 { 15 echo "file existed.\n"; 16 unlink(FILE_NAME); 17 } 18 19 $fd = NULL; 20 21 $fd = fopen(FILE_NAME, "wb"); 22 23 if ($fd == NULL || $fd == false) 24 { 25 echo "Failed to open file.\n"; 26 return; 27 } 28 29 $obj = new file_info(); 30 31 if ($obj == NULL) 32 { 33 echo "Failed to create object.\n"; 34 return; 35 } 36 37 for($i=0; $i<3; $i++) 38 { 39 $temp_1 = $i * 10; 40 $temp_2 = $i * 100; 41 /* 42 $obj->file_name = "file_".$i."\n"; 43 $obj->self_count = $temp_1."\n"; 44 $obj->total_count = $temp_2."\n"; 45 */ 46 //构造字符串。filename-0-0\n 47 $row = "file_".$i."-".$temp_1."-".$temp_2."\n"; 48 echo "row: ".$row; 49 fwrite($fd, $row); 50 } 51 52 if ($fd) 53 fclose($fd); 54 55 $fd = fopen(FILE_NAME, "rb"); 56 if ($fd == false) 57 { 58 echo "Failed to open read file.\n"; 59 return; 60 } 61 62 $obj_params = array(); 63 64 $i = 0; 65 66 while (!feof($fd)) 67 { 68 $tmp_obj = new file_info(); 69 $tmp_row = fgets($fd); 70 if ($tmp_row == NULL) 71 break; 72 $pos_1 = strpos($tmp_row, '-',0); 73 $pos_2 = strpos($tmp_row,'-',$pos_1 + 1); 74 $tmp_obj->file_name = substr($tmp_row, 0, $pos_1); 75 $tmp_obj->self_count = substr($tmp_row, $pos_1 + 1, $pos_2- $pos_1 - 1); 76 $tmp_obj->total_count = substr($tmp_row, $pos_2 + 1, strlen($tmp_row) - $pos_2 - 2); 77 $obj_params[$i] = $tmp_obj; 78 $i++; 79 } 80 81 for ($k = 0; $k < count($obj_params); $k++) 82 { 83 echo $obj_params[$k]->file_name."\n"; 84 echo $obj_params[$k]->self_count."\n"; 85 echo $obj_params[$k]->total_count."\n"; 86 } 87 88 if ($fd) 89 fclose($fd);
程序执行结果如下所示:
参考网址:
http://www.w3school.com.cn/php/php_file.asp
http://www.cnblogs.com/xbf321/archive/2011/09/01/file-in-php.html
来源:https://www.cnblogs.com/Anker/p/3387180.html