php如何实现文件写入不覆盖

蜗牛 互联网技术资讯 2022-04-17 241 0

今天小编给大家分享一下php如何实现文件写入不覆盖的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

方法:1、用“file_put_contents(文件名,'数据',FILE_APPEND)”;2、用“fwrite(fopen(文件名,'a'),'数据')”,fopen()可以追加模式打开文件,fwrite()可在打开的文件中写入数据。

php如何实现文件写入不覆盖  php 第1张

本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑

php怎么实现文件写入不覆盖

在php中,想要实现文件写入不覆盖,可以通过在文件末尾追加数据来实现。

PHP支持两种在文件末尾追加数据的方法:

  • 使用file_put_contents()函数

  • 使用fopen()和fwrite()函数

有一个名为“test.txt”的文本文件,里面的内容为:

php如何实现文件写入不覆盖  php 第2张

来看看怎么向文件写入数据(不覆盖):

方法1:利用file_put_contents()函数追加数据

file_put_contents()函数可以将一个字符串写入到文件中,语法格式如下:

file_put_contents(string $filename, mixed $data[, int $flags = 0[, resource $context]])

参数说明如下:

  • $filename:要被写入数据的文件名;

  • $data:要写入的数据,可以是字符串、一维数组或者资源等类型;

  • $flags:可选参数,它的值可以是以下几种(可以使用 | 运算符组合使用):

    • FILE_USE_INCLUDE_PATH:在 include 目录里搜索 $filename。

    • FILE_APPEND:如果文件 $filename 已经存在,追加数据而不是覆盖。

    • LOCK_EX:在写入时获得一个独占锁。

  • $context:可选参数,一个 context 资源。

将file_put_contents()函数的第三个参数设置为“FILE_APPEND”可追加数据而不是覆盖。

示例:

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$file = "test.txt";
file_put_contents($file, '欢迎来到蜗牛博客!33',FILE_APPEND);    //写入内容
readfile($file);   //读取并输出文件全部内容
?>

php如何实现文件写入不覆盖  php 第3张

方法2:利用fopen()和fwrite()函数追加数据

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$file = "test.txt";
$handle = fopen($file, 'a');                 //以追加写入的模式打开文件
fwrite($handle, 'https://www.yisu.com/');    //写入内容
fclose($handle);//关闭文件
readfile($file);   //读取并输出文件全部内容
?>

php如何实现文件写入不覆盖  php 第4张

关键代码分析:

  • fopen($filename, $mode)函数可以按照指定文件模式$mode打开一个文件。当$modea或者a+,设置在打开文件时,将文件指针指向文件末尾;这样进行写入操作时,数据会被追加到已有数据的后面。

  • fwrite()函数可以将一个字符串写入到打开的文件中,因此fwrite($handle, 'https://www.yisu.com/')语句的作用就是:将字符串“https://www.yisu.com/”写入到已经打开的“test.txt”中。

  • 写入完成后,使用fclose()函数来关闭文件。如果想要获取“test.txt”文件中的新内容,就使用readfile($file)函数直接获取。

以上就是“php如何实现文件写入不覆盖”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注蜗牛博客行业资讯频道。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram