IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> PHP 文件操作 -> 正文阅读

[PHP知识库]PHP 文件操作

(本文为个人学习过程的备忘录。内容持续更新)


打开文件 fopen()

$file = fopen("./file.txt", "r");

参数表

  • 文件路径
  • 打开方式
模式描述
r只读。从文件开头开始
r+读写。从文件开头开始
w只写。打开并清空文件内容。文件不在则新建
w+读写。打开并清空文件内容。文件不在则新建
a追加。打开文件并从末尾继续。文件不在则新建
a+读/追加。
x只写。创建新文件。若文件已在,则返回false和一个错误
x+读写。

返回数据

打开成功则返回文件指针。失败返回 false.


关闭文件 fclose()

fclose($file);

文件锁 flock()

函数原型

flock(resource $stream, int $operation, int &$would_block = null): bool

参数表

  • 文件指针:已经打开的文件
  • 操作(可通过位运算多选)
操作说明
LOCK_SH获取共享锁(reader)
LOCK_EX获取独占锁(writer)
LOCK_UN解锁
LOCK_NBshould not block

返回数据

bool: 是否成功。上锁失败,则返回false.

样例

$file = fopen(...);

if (flock($file, LOCK_EX)) { // 获取锁。可能会造成阻塞。
    ...;
    flock($file, LOCK_UN); // 解锁
} else {
    ...; // 上锁失败。
}

if (flock($file, LOCK_EX | LOCK_NB)) { // 获取锁。若文件已被锁,则进入else,不会造成阻塞。
    ...;
    flock($file, LOCK_UN); // 解锁。
} else {
    ...; // 上锁失败
}

结尾判断 feof()

函数原型

feof(resource $stream): bool

读取字符 fgetc()

函数原型

fgetc(resource $stream): string|false

返回数据

包含单个字符的string,或false. 对false做判断时应注意数据类型相同(===, !==).


读取字符串 fgets()

函数原型

fgets(resource $stream, ?int $length = null): string|false

二进制读取 fread()

函数原型

fread(resource $stream, int $length): string|false

停止条件

以下条件任意一条满足则停止:

  • 读入长度已经达到设定的长度length
  • 已经达到文件结尾(EOF)
  • a packet becomes available or the socket timeout occurs (for network streams)
  • if the stream is read buffered and it does not represent a plain file, at most one read of up to a number of bytes equal to the chunk size (usually 8192) is made; depending on the previously buffered data, the size of the returned data may be larger than the chunk size.

(后两条原文摘自 php.net)


二进制写入 fwrite()

函数原型

fwrite(resource $stream, string $data, ?int $length = null): int|false

停止条件

已经达到设定的长度length,或已经达到数据data结尾。

返回数据

int: 成功写入的字节数
false: 出现异常

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-01-28 11:40:17  更:2022-01-28 11:40:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 14:37:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码