• 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、测试程序

     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.
    ";
    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.
    "; 
    26   return;
    27 }
    28 
    29 $obj = new file_info();
    30 
    31 if ($obj == NULL)
    32 {
    33    echo "Failed to create object.
    ";
    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."
    ";
    43    $obj->self_count = $temp_1."
    ";
    44    $obj->total_count = $temp_2."
    ";
    45    */
    46    //构造字符串。filename-0-0
    
    47    $row = "file_".$i."-".$temp_1."-".$temp_2."
    ";
    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.
    ";
    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."
    ";
    84    echo $obj_params[$k]->self_count."
    ";
    85    echo $obj_params[$k]->total_count."
    ";
    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

  • 相关阅读:
    对于软件工程这门课程的一些心得
    第一次冲刺(10)
    第一次冲刺(7~9)
    第一次冲刺(6)
    第一次冲刺(5)
    第一次冲刺(4)
    第一次冲刺(3)
    第一次冲刺(2)
    Arrays.asList 为什么不能 add 或者 remove 而 ArrayList 可以
    Javascript保证精度的小数乘法
  • 原文地址:https://www.cnblogs.com/Anker/p/3387180.html
Copyright © 2020-2023  润新知