小米技术社区
小米技术社区管理员 关于小米

27岁,山西运城人,职业电商经理人,前端开发工作者,从事过网站建设、网络推广、SEO、SEM、信息流推广、二类电商、网络运维、软件开发,等相关电商工作,经验较为丰富,小米技术社区致力于为广大从事Web前端开发的人员提供一些力所能及的引导和帮助 ...[更多]

E-mail:mzze@163.com

Q Q:32362389

W X:xiaomi168527

小米技术社区大牛王飞 关于王飞

27岁,山西运城人,职业电商经理人,网络工程师兼运维,从事过运营商网络建设,企业网络建设、优化。数据中心网络维护等通过,经验丰富,座右铭:当自己休息的时候,别忘了别人还在奔跑。 ...[更多]

E-mail:wf_live@126.com

Q Q:3940019

微博:王小贱ss

小米技术社区设计小艳 关于小艳

大于花一样的年龄,河南郑州是我家,2010年在北京接触团购网,2011年进入天猫淘宝一待就是四年,如今已经将设计走向国际化(ps:误打误撞开始进入阿里巴巴国际站的设计,嘿嘿)五年电商设计,丰富经验,从事过天猫淘宝阿里各项设计,店铺运营,产品拍摄;我将我的经历与您分享是我的快乐!座右铭:越努力越幸运! ...[更多]

E-mail:97157726@qq.com

Q Q:97157726

标签云
精品推荐
您的位置:首页 > 后端编程 > PHP > PHP基础

PHP文件编程--文件操作

分类: PHP基础27个赞

1、将字符串写入文件file_put_contents

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


小结:

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

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

\r:回车   光标移动到当前行的最前面

\n:换行   将光标下移动一行

按键盘的回车键做了两步,第一步将光标移动到当前行的最前面,第二步下移一行。

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



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

//方法一:
echo file_get_contents('./test.txt');   //将整个文件读入一个字符串 
//方法二:
readfile('./test.txt'); //读取输出文件内容
//注意:echo file_get_contents()==readfile()



3、打开文件并操作fopen

fopen(地址,模式)    打开文件

模式:

r:读     read

w:写      write

a:追加    append


demo:

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


小米技术社区

本站内容均为小米原创,转载请注明出处:小米技术社区>> PHP文件编程--文件操作