php文件操作

[复制链接]
查看336 | 回复0 | 2023-5-15 18:03 | 显示全部楼层 |阅读模式
1、将字符串写入文件

  1. <?php
  2. $str="床前明月光,\r\n疑是地上霜。\r\n举头望明月,\r\n低头思故乡。";
  3. file_put_contents('./test.txt',$str);  //将字符串写到文本中
复制代码
小结:
1、 所有的“写”操作都是清空重写
2、在文本中换行是\r\n
  1. \r:回车   光标移动到当前行的最前面
  2. \n:换行        将光标下移动一行
  3. 按键盘的回车键做了两步,第一步将光标移动到当前行的最前面,第二步下移一行。
复制代码
3、\r\n是特殊字符,必须放在双引号内
2、将整个文件读入一个字符串
  1. //方法一:
  2. echo file_get_contents('./test.txt');   //将整个文件读入一个字符串
  3. //方法二:
  4. readfile('./test.txt');        //读取输出文件内容
  5. //注意:echo file_get_contents()==readfile()
复制代码
3、打开文件并操作
  1. fopen(地址,模式)        打开文件
  2. 模式:
  3. r:读                read
  4. w:写                 write
  5. a:追加        append
复制代码
例题:
  1. //3.1、打开文件写入
  2. /*
  3. $fp=fopen('./test.txt','w');    //打开文件返回文件指针(文件地址)
  4. //var_dump($fp);                //resource(3) of type (stream)
  5. for($i=1;$i<=10;$i++)
  6.         fputs($fp,'关关雎鸠'."\r\n");        //写一行
  7. fclose($fp);        //关闭文件
  8. */

  9. //3.2  打开文件读取
  10. /*
  11. $fp=fopen('./test.txt','r');        //打开文件读取
  12. while($line=fgets($fp)){
  13.         echo $line,'<br>';
  14. }
  15. */

  16. //3.3   打开文件追加
  17. $fp=fopen('./test.txt','a');        //打开文件追加
  18. fputs($fp,'在河之洲');                        //在文件末尾追加
复制代码
小结:
1、打开文件,返回文件指针(文件指针就是文件地址),资源类型
2、打开文件写、追加操作,如果文件不存在,就创建新的文件
3、打开文件读操作,文件不存在就报错
4、fputs()写一行,fgets()读一行,fclose()关闭文件
5、追加是在文件的末尾追加

4、是否是文件【is_file()】

  1. echo is_file('./test.txt')?'是文件':'不是文件';
复制代码
5、判断文件或文件夹是否存在【file_exists()】

  1. echo file_exists('./test.txt')?'文件存在':'文件不存在';
复制代码
6、删除文件【unlink】

  1. $path='./test.txt';
  2. if(file_exists($path)){                //文件存在
  3.         if(is_dir($path))                //如果是文件夹用rmdir()删除
  4.                 rmdir($path);
  5.         elseif(is_file($Path))        //如果是文件用unlink()删除
  6.                 unlink($path);
  7. }else{
  8.         echo '文件夹或文件不存在';
  9. }
复制代码
7、二进制读取【fread(文件指针,文件大小)】
文件的存储有两种:字符流和二进制流
二进制流的读取按文件大小来读的。
  1. $path='./face.jpg';
  2. $fp=fopen($path,'r');
  3. header('content-type:image/jpeg');        //告知浏览器下面的代码通过jpg图片方式解析
  4. echo fread($fp,filesize($path));        //二进制读取
复制代码
多学一招:file_get_contents()也可以进行二进制读取
  1. header('content-type:image/jpeg');
  2. echo file_get_contents('./face.jpg');
复制代码
小结:
1、文本流有明确的结束符,二进制流没有明确的结束符,通过文件大小判断文件是否读取完毕
2、file_get_contents()既可以进行字符流读取,也可以进行二进制读取。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

UID
519
贡献
14
丢币
0
主题
55
回帖
7
注册时间
2023-5-12
最后登录
2024-1-19
QQ