php 创建和修改文件内容

上一节当中我们学习了读取文件特别好掌握。这一节当中我们来讲解的是写入文件。

file_put_contents写入文件


我们先来学习第一种写入文件的方式:

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

功能:向指定的文件当中写入一个字符串,如果文件不存在则创建文件。返回的是写入的字节长度

<?php
   $data = "在PHP中文网学好PHP,妹子票子不再话下!";

   $numbytes = file_put_contents('binggege.txt', $data);

   if($numbytes){

       echo '写入成功,我们读取看看结果试试:';

       echo file_get_contents('binggege.txt');

   }else{
       echo '写入失败或者没有权限,注意检查';
   }
?>

我们发现写入文件也挺简单的。按照这个函数的格式,指定文件,写入字符串数据就可以了。

fwrite配合fopen进行写入操作


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

注:fwrite的别名函数是fputs

我们上节课试了r模式,只道是读取的时候使用,接下来我们用fwrite加上fopen中的w,写入模式来进行文件写入。

我们来看一下特点:

写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建。

注意:在下面的实验中,你可以试试新建个test.txt文件向里面写入内容。然后,可以试试把test.txt删除。看看有什么提示。

<?php
   $filename = 'test.txt';
   $fp= fopen($filename, "w");
   $len = fwrite($fp, '我是一只来自北方的狼,却在南方冻成了狗');
   fclose($fp);
   print $len .'字节被写入了\n';
?>

总结:
1.不论有没有新建都会打开文件重新写入
2.原有的文件内容会被覆盖掉
3.文件不存在会创建

那我们来对比一下以下几个模式的不同:

模式说明
r只能读不能使用fwrite写
r+可操作读、写
w只可以写功能
w+即可读又可以写

我们来通过实验证明一下:

<?php
   $filename = 'test.txt';
   $fp= fopen($filename, "r+");
   $len = fwrite($fp, '我是一只来自南方的狼,一直在寻找心中的花姑娘');
   fclose($fp);
   print $len .'字节被写入了\n';
?>

实验时可以把r后面的+号去掉。

我们通过实验,确实发现使用r模式,在文件存的时候可以进行写入数据,只用r的话,写入是不成功的。

a模式和w模式的不同

同样是下面的这段代码,我们改为a模式。

<?php
   $filename = 'test.txt';
   $fp= fopen($filename, "a");
   $len = fwrite($fp,'读大学迷茫了,PHP中文网学PHP给你希望');
   echo  $len .'字节被写入了\n';
?>

打开网页执行这段代码,你会发现:每刷新一次,文件中就会多一段
:读大学迷茫了,PHP中文网学PHP给你希望。

总结:

模式总结
x每次写入会干掉原有文件的内容,文件不存在都会创建
a每次写入都会向文件的尾端追加内容

注:a+ 是增强的追加功能。可以读取时也可以使用。

x模式和w模式的不同

这段代码我们再实验一次,改为x模式:

<?php
   $filename = 'test.txt';
   $fp= fopen($filename, "x");
   $len = fwrite($fp,'读大学迷茫了,PHP中文网学PHP给你希望');
   echo  $len .'字节被写入了\n';
?>

我们会发现:

    1.文件存在的时候会报错

    2.如果把$filename 改成其他的文件名,就可以了。但是,再次刷新的时候又报错了

    3.x+ 是增强的x模式。读取时也可以使用。

继续学习
||
<?php $filename = 'test.txt'; $fp= fopen($filename, "x"); $len = fwrite($fp,'读大学迷茫了,PHP中文网学PHP给你希望'); echo $len .'字节被写入了\n'; ?>
提交重置代码
章节
笔记
提问
课件
反馈
捐赠

php入门教程之一周学会PHP

  • 推荐课程
  • 评论
  • 问答
  • 笔记
  • 课件下载
y的小公举

y的小公举

自学的困难只有自己知道,如何让学习不再困难让学习提高效率

3年前    添加回复 0

回复
joker-yjc

joker-yjc

<?php header('content:text/html;charset:utf-8;'); //file_get_contents('test.txt'); $filename="test.txt"; $fp= fopen($filename, "a+"); $len = fwrite($fp, '我是一只来自北方的狼,却在南方

3年前    添加回复 0

回复

编码

[最新 coco 的回答]如果出现乱码需要在

时间:2年前

写入失败怎么办

[最新 UI designer 的回答]给权限就行了 zzz

时间:4年前

YuShine Wei

YuShine Wei

ile_put_contents写入文件 我们先来学习第一种写入文件的方式: int file_put_contents ( string $文件路径, string $写入数据])

1年前 0

吒哪

吒哪

fwrite配合fopen进行写入操作

1年前 0

吒哪

吒哪

1.int file_put_contents ( string $文件路径, string $写入数据]) 返回的是写入的字节长度 2.int fwrite ( resource $文件资源变量, string $写入的字符串 [, int 长度]) //fwrite的别名函数是fputs 原有的文件内容会被覆盖掉 3.a 每次写入都会向文件的尾端追加内容

1年前 0

刘彬

刘彬

x 每次写入会干掉原有文件的内容,文件不存在都会创建 这个点有点问题,应该是 x: 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。

3年前 0

黄二铭

黄二铭

fopen用A模式打开会在文本内追加内容,而使用X模式会将文件覆盖。

3年前 0

fighting&it'sme

fighting&it'sme

模式和w模式的不同 同样是下面的这段代码,我们改为a模式。 <?php $filename = 'test.txt'; $fp= fopen($filename, "a"); $len = fwrite($fp,'读大学迷茫了,PHP中文网学PHP给你希望'); echo $len .'字节被写入了\n'; ?> 打开网页执行这段代码,你会发现:每刷新一次,文件中就会多一段 :读大学迷茫了,PHP中文网学PHP给你希望。 总结: 模式 总结 x 每次写入会干掉原有文件的内容,文件不存在都会创建 a 每次写入都会向文件的尾端追加内容 注:a+ 是增强的追加功能。可以读取时也可以使用。 x模式和w模式的不同 这段代码我们再实验一次,改为x模式: <?php $filename = 'test.txt'; $fp= fopen($filename, "x"); $len = fwrite($fp,'读大学迷茫了,PHP中文网学PHP给你希望'); echo $len .'字节被写入了\n'; ?> 我们会发现: 1.文件存在的时候会报错 2.如果把$filename 改成其他的文件名,就可以了。但是,再次刷新的时候又报错了 3.x+ 是增强的x模式。读取时也可以使用。

3年前 0

北海以北

北海以北

int fwrite ( resource $文件资源变量, string $写入的字符串 [, int 长度]) 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建。

3年前 0

北海以北

北海以北

int file_put_contents ( string $文件路径, string $写入数据]) 功能:向指定的文件当中写入一个字符串,如果文件不存在则创建文件。返回的是写入的字节长度

3年前 0

课件暂不提供下载,工作人员正在整理中,后期请多关注该课程~