三分钟教你PHP中怎样写入文件?

在之前的文章中给大家带来了《PHP中怎样读取文件?(分享总结)》,里面详细的介绍了在我们应该怎样去读取文件,本篇文章继续给大家带来,我们应该怎样去创建和修改文件,希望对大家有帮助!

读取文件想必已经难不到大家,那么接下来我们来看一看,我们应该怎样修改文件或者说创建文件并且修改它。

file_put_contents写入文件

首先,我们先来学习一种写入方式,file_put_contents(),它的语法格式如下:

int file_put_contents ( string $文件路径, string $写入数据])

它能够向指定的文件写入一个字符串,如果不存在这个文件,file_put_contents会创建一个文件,返回的是写入字节的长度。同时需要知道的是,如果这个指定的文件中存在内容的话,它会覆盖掉之前的内容。

示例如下:

<?php
   $a = "好好学习,天天向上;福如东海,寿比南山";
   $b = file_put_contents('test.txt', $a);
   if($b){
       echo '写入成功,我们读取看看结果试试:';
       echo file_get_contents('test.txt');
   }else{
       echo '写入失败或者没有权限,注意检查';
   }
?>

输出结果:

1018.31.png

在我的目录中本来不存在test.txt,通过函数之后,我的目录中出现了test.txt,并且内容如下:

1018.32.png

由上述示例我们可以看出,写入一个文件还是不难的,按照规定的函数格式,指定的文件就可以被写入。

fwrite配合fopen进行写入操作

fwrite() 函数用于向文件写入字符串,成功返回写入的字符数,否则返回 FALSE 。

首先先说fwrite的语法结构如下:

int fwrite ( resource $文件资源变量, string $写入的字符串 [, int 长度])

接下来我们用fwrite加上fopen中的w,写入模式来进行文件写入。其中的特点,我们在前一篇文章中也说了,就是写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建。

<?php
   $a = 'test.txt';
   $b= fopen($a, "w");
   $c = fwrite($b, '好好学习,天天向上;福如东海,寿比南山');
   fclose($b);
   print $c .'字节被写入了
';
?>

输出结果:

1018.33.png

在目录中的test.txt文件内容如下:

1018.34.png

由上述示例我们可以得到以下总结:

  • 不论有没有新建都会打开文件重新写入

  • 原有的文件内容会被覆盖掉

  • 文件不存在会创建

接下来我们再来对比一下,几个模式的不同:

  • r —只能读不能使用fwrite写

  • r+—可操作读、写

  • w —只可以写功能

  • w+—即可读又可以写

举个例子:

还是上述示例,把其中的w换成r,示例如下:

<?php
   $a = 'test.txt';
   $b= fopen($a, "r");
   $c = fwrite($b, '好好学习,天天向上;');
   fclose($b);
   print $c .'字节被写入了
';
?>

输出结果:

1018.35.png

通过示例我们发现,r模式下写入是不成功的。

a模式和w模式的不同

还是通过上面的代码,把r换成a试一下,示例如下:

<?php
   $a = 'test.txt';
   $b= fopen($a, "a");
   $c = fwrite($b, '好好学习,天天向上;');
   fclose($b);
   print $c .'字节被写入了
';
?>

输出结果:

1018.36.png

test.txt文本内容如下:

1018.37.png

通过上述示例发现,a模式下,每刷新一次,就会多写入一次。每次写入都会在文件尾端追加内容。

推荐学习:《PHP视频教程》

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 三分钟教你PHP中怎样写入文件?