上一节当中我们学习了读取文件特别好掌握。这一节当中我们来讲解的是写入文件。 ##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'; ?> ~~~ 我们会发现: 1. 文件存在的时候会报错 2. 如果把$filename 改成其他的文件名,就可以了。但是,再次刷新的时候又报错了 3. x+ 是增强的x模式。读取时也可以使用。