PHP-文件操作
- 2020 年 3 月 26 日
- 筆記
1.2 文件操作
**1、**将字符串写入文件
<?php $str="床前明月光,rn疑是地上霜。rn举头望明月,rn低头思故乡。"; file_put_contents('./test.txt',$str); //将字符串写到文本中
小结:
1、 所有的“写”操作都是清空重写
2、在文本中换行是rn
r:回车 光标移动到当前行的最前面 n:换行 将光标下移动一行 按键盘的回车键做了两步,第一步将光标移动到当前行的最前面,第二步下移一行。
3、rn是特殊字符,必须放在双引号内
**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,'关关雎鸠'."rn"); //写一行 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()既可以进行字符流读取,也可以进行二进制读取。