- <?php
- $str="床前明月光,\r\n疑是地上霜。\r\n举头望明月,\r\n低头思故乡。";
- file_put_contents('./test.txt',$str); //将字符串写到文本中
复制代码小结:
1、 所有的“写”操作都是清空重写
2、在文本中换行是\r\n
- \r:回车 光标移动到当前行的最前面
- \n:换行 将光标下移动一行
- 按键盘的回车键做了两步,第一步将光标移动到当前行的最前面,第二步下移一行。
复制代码3、\r\n是特殊字符,必须放在双引号内
2、将整个文件读入一个字符串
- //方法一:
- echo file_get_contents('./test.txt'); //将整个文件读入一个字符串
- //方法二:
- readfile('./test.txt'); //读取输出文件内容
- //注意:echo file_get_contents()==readfile()
复制代码3、打开文件并操作
- fopen(地址,模式) 打开文件
- 模式:
- r:读 read
- w:写 write
- a:追加 append
复制代码例题:
- //3.1、打开文件写入
- /*
- $fp=fopen('./test.txt','w'); //打开文件返回文件指针(文件地址)
- //var_dump($fp); //resource(3) of type (stream)
- for($i=1;$i<=10;$i++)
- fputs($fp,'关关雎鸠'."\r\n"); //写一行
- fclose($fp); //关闭文件
- */
- //3.2 打开文件读取
- /*
- $fp=fopen('./test.txt','r'); //打开文件读取
- while($line=fgets($fp)){
- echo $line,'<br>';
- }
- */
- //3.3 打开文件追加
- $fp=fopen('./test.txt','a'); //打开文件追加
- fputs($fp,'在河之洲'); //在文件末尾追加
复制代码小结:
1、打开文件,返回文件指针(文件指针就是文件地址),资源类型
2、打开文件写、追加操作,如果文件不存在,就创建新的文件
3、打开文件读操作,文件不存在就报错
4、fputs()写一行,fgets()读一行,fclose()关闭文件
5、追加是在文件的末尾追加
4、是否是文件【is_file()】
- echo is_file('./test.txt')?'是文件':'不是文件';
复制代码5、判断文件或文件夹是否存在【file_exists()】
- echo file_exists('./test.txt')?'文件存在':'文件不存在';
复制代码6、删除文件【unlink】
- $path='./test.txt';
- if(file_exists($path)){ //文件存在
- if(is_dir($path)) //如果是文件夹用rmdir()删除
- rmdir($path);
- elseif(is_file($Path)) //如果是文件用unlink()删除
- unlink($path);
- }else{
- echo '文件夹或文件不存在';
- }
复制代码7、二进制读取【fread(文件指针,文件大小)】
文件的存储有两种:字符流和二进制流
二进制流的读取按文件大小来读的。
- $path='./face.jpg';
- $fp=fopen($path,'r');
- header('content-type:image/jpeg'); //告知浏览器下面的代码通过jpg图片方式解析
- echo fread($fp,filesize($path)); //二进制读取
复制代码多学一招:file_get_contents()也可以进行二进制读取
- header('content-type:image/jpeg');
- echo file_get_contents('./face.jpg');
复制代码小结:
1、文本流有明确的结束符,二进制流没有明确的结束符,通过文件大小判断文件是否读取完毕
2、file_get_contents()既可以进行字符流读取,也可以进行二进制读取。