PHP文件操作[总结]

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:把 整个文件 读入一个数组中,数组中的每个单元都是文件中相应的一行。

检查文件是否存在

检查文件是否可读写执行

文件拷贝

  • copy:拷贝文件。

文件删除

取得文件大小、类型、修改时间信息

文件指针函数

  • fclose:关闭文件指针。
  • feof:测试文件指针是否到了文件结束的位置。
  • fseek:在文件指针中定位。
  • rewind:倒回文件指针的位置。
  • ftell:返回文件指针读/写的位置

3、测试程序

PHP文件操作[总结]
 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);
PHP文件操作[总结]

程序执行结果如下所示:

PHP文件操作[总结]

上一篇:[VC]大文件分割工具,支持最大3G大小


下一篇:jsp中 application 、EL表达式中applicationScope 、 Java中servletContext 关系