文章出處

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、測試程序

 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


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()