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

 const FILE_NAME = "file_info.dat";

 class file_info
{
public $file_name;
public $self_count;
public $total_count;
} //判断文件是否存在
if (file_exists(FILE_NAME))
{
echo "file existed.\n";
unlink(FILE_NAME);
} $fd = NULL; $fd = fopen(FILE_NAME, "wb"); if ($fd == NULL || $fd == false)
{
echo "Failed to open file.\n";
return;
} $obj = new file_info(); if ($obj == NULL)
{
echo "Failed to create object.\n";
return;
} for($i=0; $i<3; $i++)
{
$temp_1 = $i * 10;
$temp_2 = $i * 100;
/*
$obj->file_name = "file_".$i."\n";
$obj->self_count = $temp_1."\n";
$obj->total_count = $temp_2."\n";
*/
//构造字符串。filename-0-0\n
$row = "file_".$i."-".$temp_1."-".$temp_2."\n";
echo "row: ".$row;
fwrite($fd, $row);
} if ($fd)
fclose($fd); $fd = fopen(FILE_NAME, "rb");
if ($fd == false)
{
echo "Failed to open read file.\n";
return;
} $obj_params = array(); $i = 0; while (!feof($fd))
{
$tmp_obj = new file_info();
$tmp_row = fgets($fd);
if ($tmp_row == NULL)
break;
$pos_1 = strpos($tmp_row, '-',0);
$pos_2 = strpos($tmp_row,'-',$pos_1 + 1);
$tmp_obj->file_name = substr($tmp_row, 0, $pos_1);
$tmp_obj->self_count = substr($tmp_row, $pos_1 + 1, $pos_2- $pos_1 - 1);
$tmp_obj->total_count = substr($tmp_row, $pos_2 + 1, strlen($tmp_row) - $pos_2 - 2);
$obj_params[$i] = $tmp_obj;
$i++;
} for ($k = 0; $k < count($obj_params); $k++)
{
echo $obj_params[$k]->file_name."\n";
echo $obj_params[$k]->self_count."\n";
echo $obj_params[$k]->total_count."\n";
} if ($fd)
fclose($fd);

程序执行结果如下所示:

参考网址:

http://www.w3school.com.cn/php/php_file.asp

http://www.cnblogs.com/xbf321/archive/2011/09/01/file-in-php.html

最新文章

  1. 读Javascript高级程序设计第三版第六章面向对象设计--创建对象
  2. Direct2D教程(外篇)环境配置
  3. Image Segmentation的定义
  4. linux(debian)下邮件发送
  5. SAP接口编程 之 JCo3.0系列(03) : Table参数
  6. 修改hosts文件解决OneDrive被墙的问题
  7. 使用 Spring 3 来创建 RESTful Web Services(转)
  8. NuGet学习笔记
  9. 添加数据时候获取自增的ID
  10. 李洪强iOS开发本人集成环信的经验总结_01环信SDK的导入
  11. Jquery 对话框确认
  12. [ASP.NET MVC]笔记(二) 数据注解和验证
  13. Linux提示字符设置
  14. HangFire快速入门 分布式后端作业调度框架服务
  15. .NET Core中的路由约束
  16. .Net Core+Angular6 学习 第一部分(创建web api)
  17. PHP中防止SQL注入
  18. Vertica系列:性能优化
  19. mysql 5.7 版本的安装
  20. sudo中的 各类授权 名称包含的操作 权限命令?

热门文章

  1. Linux下查看哪些IP登陆过系统/var/log/wtmp
  2. 使用Apache commons-codec Base64实现加解密(转)
  3. HDU 4790 Just Random (2013成都J题)
  4. lua中的pairs和ipairs差别
  5. TCP握手与socket通信细节
  6. Android 数据存储04之Content Provider
  7. 快速将wax配置到项目中进行lua开发
  8. 深入浅出!从语义角度分析隐藏在Unity协程背后的原理
  9. wince程序调用另外一个wince exe程序?
  10. 能添加图标的label