2.3 文件编程

文件夹操作

  1. 创建文件夹 mkdir(路径,权限,是否递归创建)

列题:

<?php
//mkdir('./aa');   //当前目录下创建aa文件夹
//mkdir('./aa/bb');  //在aa目录下创建bb(aa目录必须存在)
mkdir('./aa/bb/cc/dd',0777,true); //递归创建
?>

  1. 删除文件夹 rmdir()
rmdir('./aa/bb/cc/dd'); //删除dd文件夹

提醒:

  • 删除的文件夹必须是空的
  • PHP出于安全考虑,没有提供递归删除
  1. 重命名文件夹 rename(旧名字,新名字)
rename('./aa','./aaa'); //将aa改为aaa
  1. 是否是文件夹 is_dir()
echo is_dir('./aaa')?'是文件夹':'不是文件夹'; //判读aaa是不是文件夹
  1. 打开文件夹,读取文件夹,关闭文件夹
<?php
$folder=opendir('./');  //打开目录
while($f=readdir($folder)){
    
    //读取文件夹
	if($f=='.' || $f=='..')
		continue;
	echo iconv('gbk','utf-8',$f),'<br>'; //设置字符编码将GBK转换成UTF—8
	}
clsedir($folder); //关闭文件
?>

小结:
1.opendir()返回资源类型
2.每个文件夹都有.和…
3.iconv()用来做字符编码转换

文件操作

  1. 将字符串写入文件 file_put_contents()
<?php
$str="1234567890\r\n,123456789";
file_put_contents('./test.txt',$str);//将字符串写到文本中
?>

小结:
所有的‘写’操作都是清空重写
在文本中换行是\r\n

  1. 从文件中读取 file_get_contents()
//方法一
echo file_get_contents('./test.txt'); //将整个文件读入一个字符串
//方法二
readfile(./test.txt);//读取文件输出内容
  1. 打开文件操作
  • 打开文件写入
<?php
$fp=fopen('./test.txt','w');//打开test文件,进行写操作
fputs($fp,'关关雎鸠');//写入关关雎鸠
fclose($fp); //关闭文件
?>

  • 打开文件读取
<?php
$fp=fopen('./test.txt','r'); //打开文件读取
echo fgets($fp);  //读取一行
?>

  • 打开文件追加
<?php
$fp=fopen('./test.txt','a'); //打开文件追加
fputs($fp,'在河之洲'); //在文件末尾追加
?>

小结:
1.打开文件,返回文件指针(文件指针就是文件地址),资源类型
2.打开文件写,追加操作,如果文件不存在,就创建新的文件
3.打开文件读取操作,文件不纯在就报错
4.fputs()写一行,fgets()读一行,fclose()关闭文件

  1. 是否是文件 is_file()
echo is_file('./test.txt')?'是文件':'不是文件';
  1. 判断文件或文件夹是否存在 file_exists()
<?php
echo file_exists('./test.txt')?'文件存在':'文件不存在';
?>

  1. 删除文件 unlink
<?php
$pate='./aa.txt';
if(file_exists($pate)){
    
     //判断文件是否存在
	if(is_dir($pate))   //如果是文件夹用rmdir()删除
		rmdir($pate);
	elseif(is_file($pate)) //如果是文件用unlink()删除
		unlink($pate);
}else{
    
    
	echo '文件夹或文件不存在';
}
?>

  1. 二进制读取 fread(文件指针,文件大小)
    文件的存储有两种:字符流和二进制流
    二进制流的读取按文件大小来读的
<?php
$path=('./test.jpg');
$fp=fopen($path,'r');
header('content-type:jpg/jpeg'); //告知浏览器下面的代码通过jpg图片方式解析
echo fread($fp,filesize($path));//二进制读取,filesize读取的字节
?>


猜你喜欢

转载自blog.csdn.net/weixin_45291045/article/details/108729199
2.3