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()既可以进行字符流读取,也可以进行二进制读取。