一、php文件操作

1、readfile - 适用于打开一个文件并读取文件的内容

echo readfile('e:/webdictionary.txt');

2、fopen('文件名','打开模式')  - 打开文件

打开模式:

r - 只读

w - 只写,如果文件不存在会自动创建(这是跟 r 不同的地方),文件指针指向开头,即如果文件存在会覆盖原文件。

a - 只写,如果文件不存在会自动创建,如果文件存在,文件指针指向文件末尾,即新写入的内容会添加到文件的末尾

x - 只写,如果文件不存在会自动创建,如果文件存在,会报错,文件指针指向文件开头

b - 打开一个二进制文件

t - windows的文本转换标记,可以透明的将 \n 转成 \r\n.

注:b 和 t 要依赖于前面的 4 种情况来使用

3、fclose('已经打开了的文件') - 关闭文件

4、fwrite('接收方','给予方')  - 想文件中写入内容(给予方必须是一个string)

5、feof('已经打开了的文件')  - 判断是否到了文件的末尾

6、fgets('已经打开了的文件') - 从已经打开了的文件中读取单行

7、特殊函数

//将文件截取指定的长度
ftruncate ( resource $handle , int $size ) blool
//取得文件的 inode 修改时间,即文件的权限,所有者,所有组或其它 inode 中的元数据
filectime ( string $filename ) : int
//取得文件的上次访问时间,比如上次取文件了文件
fileatime ( string $filename ) : int
//取得文件修改时间,即文件被入。
filemtime ( string $filename ) : int
/*取得文件类型,返回值有如下 7 种类型:
file(文件),
dir(目录),
fifo(命名管道,常用于将信息从一个进程传输到另一个进程),
char(字符设备文件,值在I/O传输过程中以字符为单位进行传输的设备,例如键盘,打印机),
block(块设备文件),
link( 符号链接,是指向文件指针的指针,类似Windows中的快捷方式),
unknown(未知类型)
*/
filetype ( string $filename ) : string

//文件锁定
flock ( resource $handle , int $operation ) : bool
//operation 可以是以下值之一:
//LOCK_SH 取得共享锁定(读取的程序)。
//LOCK_EX 取得独占锁定(写入的程序。
//LOCK_UN 释放锁定(无论共享或独占) //返回文件指针读/写的位置
ftell ( resource $handle ) : int //在文件指针中定位
fseek ( resource $handle , int $offset [, int $whence = SEEK_SET ] ) : int
//offset:偏移量,要移动到文件尾之前的位置,需要给 offset 传递一个负值,并设置 whence 为 SEEK_END。
//whence :
//SEEK_SET - 设定位置等于 offset 字节。
//SEEK_CUR - 设定位置为当前位置加上 offset。
//SEEK_END - 设定位置为文件尾加上 offset。 //倒回文件指针的位置
rewind ( resource $handle ) : bool

8、访问远程文件需要在php.ini里面开启 allow_url_fopen 

经典示例1:

$file1 = fopen('e:/file1.txt','r');
$file2 = fopen('e:/file2.txt','w');
while(!feof($file1)){
fwrite($file2,fgets($file1));
}
fclose($file1);
fclose($file2);

经典示例2:

// a.txt,b.txt都是1G大小,要把a.txt复制给b.txt的末尾,

function copyAToB(){
$file_a = fopen('a.txt','r');
$file_b = fopen('b.txt','a');
while($str = fread($file_a,)){
fwrite($file_b,$str);
}
fclose($file_a);
fclose($file_b);
}
copyAToB('a.txt','b.txt');

二、php目录操作

1、常用函数

//当我们用opendir()打开一个文件后,操作这个文件句柄,操作完了之后,可以用该函数将句柄指向文件开头。
rewinddir()

经典示例3:遍历目录,并输出该目录下的所有文件

本文为袋鼠学习中的总结,如有转载请注明出处:https://www.cnblogs.com/chrdai/p/6373301.html

pho文件操作的更多相关文章

  1. 【.NET深呼吸】Zip文件操作(1):创建和读取zip文档

    .net的IO操作支持对zip文件的创建.读写和更新.使用起来也比较简单,.net的一向作风,东西都准备好了,至于如何使用,请看着办. 要对zip文件进行操作,主要用到以下三个类: 1.ZipFile ...

  2. 野路子出身PowerShell 文件操作实用功能

    本文出处:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职,索性就网上各种 ...

  3. Node基础篇(文件操作)

    文件操作 相关模块 Node内核提供了很多与文件操作相关的模块,每个模块都提供了一些最基本的操作API,在NPM中也有社区提供的功能包 fs: 基础的文件操作 API path: 提供和路径相关的操作 ...

  4. 归档NSKeyedArchiver解归档NSKeyedUnarchiver与文件管理类NSFileManager (文件操作)

    ========================== 文件操作 ========================== 一.归档NSKeyedArchiver 1.第一种方式:存储一种数据. // 归档 ...

  5. SQL Server附加数据库报错:无法打开物理文件,操作系统错误5

    问题描述:      附加数据时,提示无法打开物理文件,操作系统错误5.如下图: 问题原因:可能是文件访问权限方面的问题. 解决方案:找到数据库的mdf和ldf文件,赋予权限即可.如下图: 找到mdf ...

  6. 通过cmd完成FTP上传文件操作

    一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...

  7. Linux文件操作的主要接口API及相关细节

    操作系统API: 1.API是一些函数,这些函数是由linux系统提供支持的,由应用层程序来使用,应用层程序通过调用API来调用操作系统中的各种功能,来干活 文件操作的一般步骤: 1.在linux系统 ...

  8. C语言的fopen函数(文件操作/读写)

    头文件:#include <stdio.h> fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为:    FILE * fopen(const char * path, c ...

  9. Python的文件操作

    文件操作,顾名思义,就是对磁盘上已经存在的文件进行各种操作,文本文件就是读和写. 1. 文件的操作流程 (1)打开文件,得到文件句柄并赋值给一个变量 (2)通过句柄对文件进行操作 (3)关闭文件 现有 ...

随机推荐

  1. listener failed: zbx_tcp_listen() fatal error: unable to serve on any address [[-]:20050]

    故障现象: 客户端报错:service zabbix-agent 启动后,端口没有被正常监听,服务端也无法正常连接 将客户端改为二进制文件安装也不能正常启动/usr/local/zabbix/sbin ...

  2. Tpcc-MySQL对mysql数据库进行性能测试报告、分析及使用gnuplot生成图表展示

    TPC-C是专门针对联机交易处理系统(OLTP系统)的规范,一般情况下我们也把这类系统称为业务处理系统. tpcc-mysql是percona基于TPC-C(下面简写成TPCC)衍生出来的产品,专用于 ...

  3. Python-HTML 最强标签分类

    编程: 使用(展示)数据 存储数据 处理数据 前端 1. 前端是做什么的? 2. 我们为什么要学前端? 3. 前端都有哪些内容? 1. HTML 2. CSS 3. JavaScript 4.jQue ...

  4. Android 项目中文件夹作用(res文件夹详细介绍)

    1. src:存放所有的*.Java源程序. 2. gen:为ADT插件自动生成的代码文件保存路径,里面的R.java将保存所有的资源ID. 3. assets:可以存放项目一些较大的资源文件,例如: ...

  5. OneNET麒麟座应用开发之四:数据上传测试

    已经测试过OneNET麒麟座开发板了,这次来尝试与OneNET的连接和数据上传.这也是我们测试这块开发办的主要原因,因为在十几种我们有这种将分散的采集点数据上传到后台的需求. 先看看麒麟座这块开发板, ...

  6. Quartz 定时邮件发送多个备份文件

    项目代码 pom.xml 文件Quartz 的包是整个项目不可缺少的 <properties> <!-- Spring的版本 --> <springframework.v ...

  7. cf276E 两棵线段树分别维护dfs序和bfs序,好题回头再做

    搞了一晚上,错了,以后回头再来看 /* 对于每次更新,先处理其儿子方向,再处理其父亲方向 处理父亲方向时无法达到根,那么直接更新 如果能达到根,那么到兄弟链中去更新,使用bfs序 最后,查询结点v的结 ...

  8. python 全栈开发,Day7(元组转换,列表以及字典的坑,集合,关系测试,深浅copy,编码补充)

    一.元组转换 数字 tu = (1) tu1 = (1,) print(tu,type(tu)) print(tu1,type(tu1)) 执行输出: 1 <class 'int'>(1, ...

  9. 集合Arraylist的方法的使用和打印

    package chapter090; import java.util.ArrayList;import java.util.List; public class TestList01 { publ ...

  10. mysql批量插入数据优化

    一.问题 很早以前做了一个更新功能,就是将A表中的数据全部查找出来,相对B表中改变的数据更新B表,B表中没有的数据插入B表. 最近发现该功能执行速率减慢,有时还跑超时.原来是A表中数据渐渐变多,就有了 ...