文件夹操作
- 创建文件夹 mkdir(路径,权限,是否递归创建)
列题:
<?php
//mkdir('./aa'); //当前目录下创建aa文件夹
//mkdir('./aa/bb'); //在aa目录下创建bb(aa目录必须存在)
mkdir('./aa/bb/cc/dd',0777,true); //递归创建
?>
- 删除文件夹 rmdir()
rmdir('./aa/bb/cc/dd'); //删除dd文件夹
提醒:
- 删除的文件夹必须是空的
- PHP出于安全考虑,没有提供递归删除
- 重命名文件夹 rename(旧名字,新名字)
rename('./aa','./aaa'); //将aa改为aaa
- 是否是文件夹 is_dir()
echo is_dir('./aaa')?'是文件夹':'不是文件夹'; //判读aaa是不是文件夹
- 打开文件夹,读取文件夹,关闭文件夹
<?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()用来做字符编码转换
文件操作
- 将字符串写入文件 file_put_contents()
<?php
$str="1234567890\r\n,123456789";
file_put_contents('./test.txt',$str);//将字符串写到文本中
?>
小结:
所有的‘写’操作都是清空重写
在文本中换行是\r\n
- 从文件中读取 file_get_contents()
//方法一
echo file_get_contents('./test.txt'); //将整个文件读入一个字符串
//方法二
readfile(./test.txt);//读取文件输出内容
- 打开文件操作
- 打开文件写入
<?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()关闭文件
- 是否是文件 is_file()
echo is_file('./test.txt')?'是文件':'不是文件';
- 判断文件或文件夹是否存在 file_exists()
<?php
echo file_exists('./test.txt')?'文件存在':'文件不存在';
?>
- 删除文件 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 '文件夹或文件不存在';
}
?>
- 二进制读取 fread(文件指针,文件大小)
文件的存储有两种:字符流和二进制流
二进制流的读取按文件大小来读的
<?php
$path=('./test.jpg');
$fp=fopen($path,'r');
header('content-type:jpg/jpeg'); //告知浏览器下面的代码通过jpg图片方式解析
echo fread($fp,filesize($path));//二进制读取,filesize读取的字节
?>