一文带你掌握PHP中常见的文件操作
发布:smiling 来源: PHP粉丝网 添加日期:2024-04-28 11:55:59 浏览: 评论:0
这篇文章主要为大家详细介绍了PHP中常见的文件操作的相关知识,文字的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下。
一、文件读取的5种方法
1、file_get_contents: 将整个文件读入一个字符串
- file_get_contents(
- string $filename,
- bool $use_include_path = false,
- ?resource $context = null,
- int $offset = 0,
- ?int $length = null
- ): string|false
可以读取本地的文件
也可以用来打开一个网络地址实现简单的网页抓取
可以模拟post请求(stream_context_create)
- $fileName = 'test.txt';
- if (file_exists($fileName)) {
- $str = file_get_contents($fileName);
- echo $str;
- } else {
- print_r("文件不存在");
- }
2、file: 把整个文件读入一个数组中
file(string $filename, int $flags = 0, ?resource $context = null): array|false
数组的每个元素对应于文件中的一行
可以读取本地的文件
也可以用来读取一个网络文件
- $lines = file('test.txt');
- foreach ($lines as $line_num => $line) {
- echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
- }
3、file_open、file_gets、file_read、fclose: 从文件指针资源读取
3.1 fgets — 从文件指针中读取一行
fgets(resource $stream, ?int $length = null): string|false
从文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。
- $fp = fopen("test.txt", "r");
- if ($fp) {
- while (!feof($fp)) {
- $line = fgets($fp);
- echo $line . "<br />\n";
- }
- fclose($fp);
- }
3.2 fread — 从文件指针中读取固定长度(可安全用于二进制文件)
fread(resource $stream, int $length): string|false
- $fp = fopen("test.txt", "r");
- if ($fp) {
- $content = "";
- while (!feof($fp)) {
- $content .= fread($fp, 1024);
- }
- #$contents = fread($handle, filesize($filename));
- echo $content;
- fclose($fp);
- }
4、SplFileObject 类
https://www.php.net/manual/zh/class.splfileobject.php
5、调用linux命令
处理超大文件,比如日志文件时,可以用fseek函数定位,也可以调用linux命令处理
- $file = 'access.log';
- $file = escapeshellarg($file); // 对命令行参数进行安全转义
- $line = `tail -n 1 $file`;
- echo $line;
二、文件写入
1、file_put_contents: 将数据写入文件
- file_put_contents(
- string $filename,
- mixed $data,
- int $flags = 0,
- ?resource $context = null
- ): int|false
- $content = "Hello, world!"; // 要写入文件的内容
- $file = "test.txt"; // 文件路径
- file_put_contents($file, $content);
2、fwrite: 写入文件(可安全用于二进制文件)
fwrite(resource $stream, string $data, ?int $length = null): int|false
- $content = "这是要写入文件的内容";
- $file = fopen("test.txt", "w"); // 打开文件写入模式
- if ($file) {
- fwrite($file, $content); // 将内容写入文件
- fclose($file); // 关闭文件
- }
3、SplFileObject 类
三、文件复制、删除、重命名
1、copy: 拷贝文件
copy(string $from, string $to, ?resource $context = null): bool
- $file = 'test.txt';
- $newFile = 'test2.txt';
- if (!copy($file, $newFile)) {
- echo "failed to copy $file...\n";
- }
2、unlink: 删除文件
unlink(string $filename, ?resource $context = null): bool
- $fileName = 'test2.txt';
- if (file_exists($fileName)) {
- if (unlink($fileName)) {
- echo '删除成功';
- }
- }
3、rename: 重命名文件
rename(string $from, string $to, ?resource $context = null): bool
可以在不同目录间移动
如果重命名文件时 to 已经存在,将会覆盖掉它
如果重命名文件夹时 to 已经存在,本函数将导致一个警告
- $fileName = 'test.txt';
- $rename = 'test_new.txt';
- if (file_exists($fileName)) {
- if (rename($fileName, $rename )) {
- echo '重命名成功';
- }
- }
Tags: PHP文件操作
- 上一篇:PHP读取TXT文本内容的五种实用方法小结
- 下一篇:最后一页
相关文章
- ·PHP 文件操作概述 (2013-11-14)
- ·PHP开发中文件操作疑难问答(2013-11-27)
- ·php文件目录常用操作(2014-09-05)
- ·php文件操作(删除、修改时间、改名、获取文件所有者)(2014-09-19)
- ·php读取大文件最好的实现方法(2015-04-10)
- ·PHP文件操作方法汇总(2021-06-06)
- ·PHP文件操作之获取目录下文件与计算相对路径的方法(2021-07-04)
- ·PHP文件操作简单介绍及函数汇总(2022-04-05)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)