PHP文件操作入门

文件读写

1、读取文件
file_get_contents():将文件中的内容读取到一个字符串中

file_get_contents($filename,$use_include_path,$context,$offset,$maxlen);

$filename:指定要读取的文件路径;其他参数为可选参数
$use_include_path,若想在php.ini中配置的 include_path路径中搜寻文件,可以将该参数设置1;
$context,用于资源流上下文操作
$offset,用于指定在文件中开始读取的位置,默认从文件头开始
$maxlen,用于指定读取的最大字节数,默认为整个文件的大小

除了文本文件,file_get_contents()还可以读取图片等其他类型的文件

  header('Content-type:image/jpeg');
  var_dump(file_get_contents('.\img\123.jpg'));

通过header函数告知浏览器图片的类型,需要注意的是,整个脚本中不能有其他的输出内容,并且这个文件必须是一个正确的图片文件
2、按行读取文件
file()函数可以将整个文件读入到数组中。如果执行成功返回一个数组,数组中的每个元素都是文件中的一行,包括换行符在内。如果执行失败,则返回false

file($filename,$flogs)

$filename指定读取的文件路径;
$flogs可选参数,指定读取方式的选项,具体如下:
FILE_USE_INCLUDE_PATH:在include_path中查找文件
FILE_IGNORE_NEW_LINES:指定返回值数组的每个元素值末尾不添加换行符
FILE_SKIP_EMPTY_LINES:跳过空行
实列:

 $arr=file('./new_file.txt');
 foreach($arr as $index=>$val){
 	print_r($index.": ".$val.'<br />');
 }

3、写入文件
file_put_contents()

file_put_contents($filename, $data,$flags)

$filename指定读取的文件路径;$data指定要写入的内容;$flags指定要写入的形式,如:FILE_USE_INCLUDE_PATH:在include_path中查找文件;FILE_APPEND表示追加写入。函数执行成功返回写入到文件内数据的字节数,失败返回false
**注意:**在php脚本中书写中文字符时,字符串的编码取决与php脚本文件所使用的编码,为了更好地处理字符编码,php提供了iconv()函数用于编码转换

  //在utf-8编码的php脚本中书写的字符串是utf-8编码
  $data="测试";
  //将utf-8编码转换为gbk编码,保存到文件中
  $data=iconv('UTF-8', 'GBK', $data);
  file_put_contents('./new_file.txt', $data);
  //输出文件,并告知浏览器使用gbk编码显示
  header('Content-type:text/html;charset=GBK'); //charset不要写错
  echo file_get_contents('./new_file.txt');

4、读取远程文件
file_get_contents()和file()除了可以读取本地文件,还可以读取远程文件。在使用前,应确保php.ini中的allow_url_fopen配置处于开启状态,否则不允许远程请求

文件常用操作

1、文件重命名和移动文件
rename()函数用于实现文件的重命名或移动文件

rename($oldname, $newname)

$oldname表示原文件路径,$newname表示目标路径。如果两个路径在同一个目录下是重命名操作,否则执行移动操作。
==注:==若目标路径是已经存在的文件,会自动覆盖。另外,若rename()函数的第一个参数是目录,则可以对目录进行重命名或移动的操作。若目标路径已经存在,或目标路径的上级目录不存在时,会失败
2、文件复制

copy($source, $dest)

$source表示原文件路径,$dest表示目标路径。当文件复制成功时返回true,失败时返回false
3、文件删除

unlink($filename)

$filename指定读取的文件路径,如果成功返回true,否则返回false。如果文件不存在,则会提示warning
4、判断文件是否存在

file_exists($filename)  //判断指定文件或目录是否存在
is_file($filename)   //判断指定文件是否存在
is_dir($filename)   //判断指定目录是否存在

文件类型和属性

1、获取文件类型
filetype($filename)
2、获取文件属性

函数功能
filesize($filename)获取文件大小
filectime($filename)获取文件的创建时间
fileatime($filename)获取文件的上一次访问时间
filemtime($filename)获取文件的修改时间
is_readable($filename)判断文件是否可读
is_writable($filename)判断文件是否可写
is_executable($filename)判断文件是否可执行

目录操作

1、创建目录
mkdir()

mkdir($pathname,$mode,$recursive)
 mkdir('./img/a/b',077,TRUE);

$pathname,指定要创建的目录;$mode指定目录的访问权限(用于Linux环境),默认为077;$recursive指定是否递归创建目录,默认为false。该函数执行成功返回true,失败返回false
$mode,$recursive均为可选参数,如果要递归创建$mode参数不能缺少
2、删除目录
rmdir()函数用于删除目录,成功返回true,失败返回false

rmdir($dirname)

$dirname,指定要删除的目录名,对于非空目录会删除失败
3、遍历目录
glob()函数用于寻找与模式匹配的文件路径,也可以用于遍历目录。函数的返回值是查找后的文件列表数组
例:

header('Content-type:text/html;charset=GBK');
var_dump(glob('./*'));  //获取当前目录下的文件列表
var_dump(glob('./*.html'));   //获取当前目录下所用的html扩展名的文件

注:需要设置字符格式(因为中文名可能会出现乱码)
4、查看磁盘大小和可用空间

disk_free_space($directory)  //可用空间
disk_total_space($directory) //总空间
disk_free_space('D:')

$directory:磁盘;这两个函数只对磁盘根目录起作用

解析路径

1、返回路径中的文件名

basename($path,$suffix)

$path指定的路径名,$suffix可选参数,如果指定了该参数且文件名使用该参数结尾的,则返回结果中会去掉这一部分字符
2返回路径中的目录部分、

dirname($path,$leves)

$leves可选参数,表示上移目录的层数,注该参数是php7中的参数,若低于该版本将不能使用该参数

   $path="c:/a/b/c/d/e.txt";
   print_r(dirname($path));  //结果:c:/a/b/c/d
   print_r(dirname($path,2));  //结果:c:/a/b/c  

3、pathinfo($path)
用于以数组形式返回路径中的信息,包括目录名、文件名和扩展名等

$path="c:/a/b/c/d/e.txt";
var_dump(pathinfo($path));
echo pathinfo($path)['basename'];

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无知的小菜鸡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值