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:把 整个文件 读入一个数组中,数组中的每个单元都是文件中相应的一行。
检查文件是否存在
- file_exists:检查文件或目录是否存在。
检查文件是否可读写执行
- is_readable:检查文件是否可读。
- is_writable:检查文件是否是否可写入。
- is_executable:检查文件是否可执行。
文件拷贝
- copy:拷贝文件。
文件删除
- unlink:删除文件。
取得文件大小、类型、修改时间信息
文件指针函数
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
PHP文件操作[总结]的更多相关文章
- 【.NET深呼吸】Zip文件操作(1):创建和读取zip文档
.net的IO操作支持对zip文件的创建.读写和更新.使用起来也比较简单,.net的一向作风,东西都准备好了,至于如何使用,请看着办. 要对zip文件进行操作,主要用到以下三个类: 1.ZipFile ...
- 野路子出身PowerShell 文件操作实用功能
本文出处:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职,索性就网上各种 ...
- Node基础篇(文件操作)
文件操作 相关模块 Node内核提供了很多与文件操作相关的模块,每个模块都提供了一些最基本的操作API,在NPM中也有社区提供的功能包 fs: 基础的文件操作 API path: 提供和路径相关的操作 ...
- 归档NSKeyedArchiver解归档NSKeyedUnarchiver与文件管理类NSFileManager (文件操作)
========================== 文件操作 ========================== 一.归档NSKeyedArchiver 1.第一种方式:存储一种数据. // 归档 ...
- SQL Server附加数据库报错:无法打开物理文件,操作系统错误5
问题描述: 附加数据时,提示无法打开物理文件,操作系统错误5.如下图: 问题原因:可能是文件访问权限方面的问题. 解决方案:找到数据库的mdf和ldf文件,赋予权限即可.如下图: 找到mdf ...
- 通过cmd完成FTP上传文件操作
一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...
- Linux文件操作的主要接口API及相关细节
操作系统API: 1.API是一些函数,这些函数是由linux系统提供支持的,由应用层程序来使用,应用层程序通过调用API来调用操作系统中的各种功能,来干活 文件操作的一般步骤: 1.在linux系统 ...
- C语言的fopen函数(文件操作/读写)
头文件:#include <stdio.h> fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为: FILE * fopen(const char * path, c ...
- Python的文件操作
文件操作,顾名思义,就是对磁盘上已经存在的文件进行各种操作,文本文件就是读和写. 1. 文件的操作流程 (1)打开文件,得到文件句柄并赋值给一个变量 (2)通过句柄对文件进行操作 (3)关闭文件 现有 ...
- python 文件操作(转)
python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目 ...
随机推荐
- HDU 5738 Eureka 统计共线的子集个数
Eureka 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5738 Description Professor Zhang draws n poin ...
- hdu 5723 Abandoned country 最小生成树 期望
Abandoned country 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5723 Description An abandoned coun ...
- How to create .gitignore file in Windows Explorer
How to create .gitignore file I need to add some rules to my .gitignore file, however, I can't find ...
- showplan_text查询计划查询 sql执行顺序 时间 IO
http://www.cnblogs.com/happyday56/archive/2009/09/10/1564144.html set showplan_text ongoselect exp ...
- 怎样把XP系统装到USB里?
怎么样在usb(usb闪存)里面装XP系统? 就是把usb当硬盘用 不买硬盘. U盘肯定装不了系统,装进去了也肯定蓝屏.为什么?因为USB得数据传输太慢,不会超过10M/S的,而你的IDE口或者SAT ...
- RabbitMQ:基本命令
rabbitmq的安装.启动和停止 rabbitmq-service.bat install rabbitmq-service.bat start rabbitmq-service.bat stop ...
- linux syslog详解 转
分三部分 一.syslog协议介绍 二.syslog函数 三.linux syslog配置 一.syslog协议介绍 1.介绍 在Unix类操作系统上,syslog广泛应用于系统日志.syslog ...
- 玩转Eclipse — 自动代码生成的Java Code Template
文章转载地址:点击打开链接 当代码写到一定程度之后,就会发现很多代码都被重复地敲了N多遍,甚至毫不夸张地说:闭着眼睛都能敲出来.大量地敲这些重复地代码,除了锻炼敲键盘的速度,基本上没有其他益处,但是长 ...
- Android性能检测工具——traceview
之前的几篇文章中介绍了android中常用的一些工具,今天介绍的工具也是比较实用和方便的,它可以用量化的指标告诉我们哪个方法执行的时间最长,被调用的次数最多,有没有重复调用.下面我们就来看看它是怎么为 ...
- 以绑定的方式来启动service
先说下原理,之前我们的启动service就是用startService来启动的,这是显式启动.启动后我们无法得到service中的数据,也无法知道它执行的状态,如果我们要启动它的activity和它建 ...