文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
8.2 创建和修改文件内容
上一节当中我们学习了读取文件特别好掌握。这一节当中我们来讲解的是写入文件。
file_put_contents 写入文件
我们先来学习第一种写入文件的方式:
int file_put_contents ( string $文件路径, string $写入数据])
功能:向指定的文件当中写入一个字符串,如果文件不存在则创建文件。返回的是写入的字节长度
<?php
$data = "我是一个兵,来自老百姓";
$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';
?>
我们会发现:
- 文件存在的时候会报错
- 如果把$filename 改成其他的文件名,就可以了。但是,再次刷新的时候又报错了
- x+ 是增强的 x 模式。读取时也可以使用。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论