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() 返回指定目录下的所有文件和目 ...
随机推荐
- ant design Modal关闭时清除数据的解决方案
背景:modal组件关闭时不清除数据,原来输入的数据还存在 解决方案: 1.modal的api:destroyOnClose 2.手动控制modal的销毁 this.state = { destroy ...
- MySQL错误:TIMESTAMP with implicit DEFAULT value is deprecated
用于存放数据库的文件夹不为空,清空了再来一次!
- 基于设备树的TQ2440 DMA学习(1)—— 芯片手册
作者 彭东林pengdonglin137@163.com 平台 TQ2440内核Linux4.9 概述 一直想抽时间学习一下DMA驱动,今天就以S3C2440为例,这款芯片的DMA控制器足够简单,也比 ...
- finger-guessing game:2增加游戏进度,界面title及游戏界面
增加游戏进度,界面title及游戏界面 //初始化引擎组件 init(50, "div_caiquan", 800, 400, main); //定义游戏层,加载进度层.游戏背景层 ...
- 线程池框架executor
Eexecutor作为灵活且强大的异步执行框架,其支持多种不同类型的任务执行策略,提供了一种标准的方法将任务的提交过程和执行过程解耦开发,基于生产者-消费者模式,其提交任务的线程相当于生产者,执行任务 ...
- 常见排序的JAVA实现和性能测试
五种常见的排序算法实现 算法描述 1.插入排序 从第一个元素开始,该元素可以认为已经被排序 取出下一个元素,在已经排序的元素序列中从后向前扫描 如果该元素(已排序)大于新元素,将该元素移到下一位置 重 ...
- wince程序调用另外一个wince exe程序?
记住:要释放句柄 清空内存(当前程序) 在虚拟机下测试如图: 在reyo.ini文件中配置另一wince执行程序的路径,如果不配置程序会报错: 如果配置的程序不存在报错: 没有问题就调用所在位置的wi ...
- 阿里云linux图形界面(centos6)
阿里云linux图形界面的安装方法:安装gnome图形化桌面#yum groupinstall -y "X Window System"#yum groupinstall -y & ...
- JQuery攻略(一) 基础知识——选择器 与 DOM
JQuery是功能丰富的Javascript库,可以帮助用户毫不费力地把动态功能应用到网页. JQuery具有许多强大的功能,包括访问部分网页,快速修改网页内容,添加动画,应用AJAX技术等等. 正因 ...
- Kubernetes中Pod的健康检查
本文介绍 Pod 中容器健康检查相关的内容.配置方法以及实验测试,实验环境为 Kubernetes 1.11,搭建方法参考kubeadm安装kubernetes V1.11.1 集群 0. 什么是 C ...