前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP-文件操作

PHP-文件操作

作者头像
cwl_java
发布2020-03-26 13:02:41
6250
发布2020-03-26 13:02:41
举报
文章被收录于专栏:cwl_Java

1.2 文件操作

**1、**将字符串写入文件

代码语言:javascript
复制
<?php
$str="床前明月光,\r\n疑是地上霜。\r\n举头望明月,\r\n低头思故乡。";
file_put_contents('./test.txt',$str);  //将字符串写到文本中

小结:

1、 所有的“写”操作都是清空重写

2、在文本中换行是\r\n

代码语言:javascript
复制
\r:回车   光标移动到当前行的最前面
\n:换行	将光标下移动一行
按键盘的回车键做了两步,第一步将光标移动到当前行的最前面,第二步下移一行。

3、\r\n是特殊字符,必须放在双引号内

**2、**将整个文件读入一个字符串

代码语言:javascript
复制
//方法一:
echo file_get_contents('./test.txt');   //将整个文件读入一个字符串 
//方法二:
readfile('./test.txt');	//读取输出文件内容

//注意:echo file_get_contents()==readfile()

**3、**打开文件并操作

代码语言:javascript
复制
fopen(地址,模式)	打开文件
模式:
r:读		read
w:写		 write
a:追加	append

例题:

代码语言:javascript
复制
//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()】

代码语言:javascript
复制
echo is_file('./test.txt')?'是文件':'不是文件';

**5、**判断文件或文件夹是否存在【file_exists()】

代码语言:javascript
复制
echo file_exists('./test.txt')?'文件存在':'文件不存在';

**6、**删除文件【unlink】

代码语言:javascript
复制
$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(文件指针,文件大小)】

文件的存储有两种:字符流和二进制流

二进制流的读取按文件大小来读的。

代码语言:javascript
复制
$path='./face.jpg';
$fp=fopen($path,'r');
header('content-type:image/jpeg');	//告知浏览器下面的代码通过jpg图片方式解析
echo fread($fp,filesize($path));	//二进制读取

多学一招:file_get_contents()也可以进行二进制读取

代码语言:javascript
复制
header('content-type:image/jpeg');
echo file_get_contents('./face.jpg');

小结:

1、文本流有明确的结束符,二进制流没有明确的结束符,通过文件大小判断文件是否读取完毕

2、file_get_contents()既可以进行字符流读取,也可以进行二进制读取。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/03/25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.2 文件操作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档