起步 - 写文件

  • 作者:KK

  • 发表日期:2016.3.23


  • 阅读本章节前你要先了解一下什么是路径

有时候我们要让程序去写一些数据到文件中,通过file_put_contents函数实现

file_put_contents('1.txt', '测试内容');

这个file_put_contents函数会在当前PHP文件所在的相同目录下创建1.txt文件,然后将第2个参数作为文件内容写进去

  • 文件路径

    写文件的路径可以像上面那样直接写"1.txt",这样的话,PHP引擎会先看看当前的PHP脚本在哪个文件夹,比如在"D:\文件夹1",那么就会在这个文件夹下面生成1.txt

    但我们可以指定一个完整的路径明确告诉PHP把文件写到哪里:

    file_put_contents('D:\33.txt', '测试内容');
    

    这样就会在D盘下面产生33.txt了

    而完整路径下,所指定的文件所在的目录必须是存在的,比如指定"D:\abc\1.txt",那1.txt所在的abc目录必须存在,如果目录不存在会引发写入错误,你自己试试看


  • 覆盖写入

    如果1.txt已经存在了,则覆盖里面的内容

    file_put_contents('1.txt', '第1次写的内容');
    file_put_contents('1.txt', '第2次写的内容');
    

    结果文件中只有"第2次写的内容",因为第2次写的时候文件已经存在,不会重新创建,然后直接擦写了旧的内容


  • 追加写入

    我们也可以选择在文件已经存在的时候不覆盖里面的内容,而是在文件的尾部写入内容,这样要增加第3个参数,这是一个可选参数,用于控制文件的写入方式,如果不传的话就默认是覆盖方式,这下我们传一个叫做FILE_APPEND的常量进去试试

    file_put_contents('1.txt', '第1行内容');
    file_put_contents('1.txt', '第2行内容', FILE_APPEND);
    file_put_contents('1.txt', '第3行内容', FILE_APPEND);
    

    然后你打开1.txt看看吧,里面应该有3行内容,因为每次追加写入都是在新的一行写入的


  • 检测文件是否存在

    有时候要判断一下目标文件是不是存在于磁盘上才决定是否要进行内容读写,通过file_exists函数可以检测一个文件是否存在,它返回一个boolean值

    if(file_exists('1.txt')){
    	echo '文件已经存在了';
    }else{
    	file_put_contents('1.txt', '文件内容文件内容文件内容....');
    	echo '文件不存在,那我写文件了哦!';
    }