文章出處
文章列表
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
文章列表
全站熱搜