文件操作
内存和硬盘的概念:内存就好比人的大脑,硬盘就好比我们要记的东西。写入文件就是把内存处理好的东西存到硬盘里面。
readfile file file_get_contents file_put_contents fputs

<?php$fp=fopen('a.txt','r+');//r是以读的方式打开 r+是以读写的方式打开,可以读可以写(覆盖写)w是以写的方式打开没有读,文件不存在会创建,w+就让你读了 如果以a模式打开,在原有基础上累加写, a+模式就让你读。//var_dump($fp);//返回的是一个资源$str='其实恋爱是一门学科';fwrite($fp, $str);fseek($fp,0);//把指针移到最前面(文件头)fread($fp,3);fclose($fp);?>

pathinfo(); //返回数组,路径信息
basename();//获取文件名
dirname();//获取文件夹的名字
http_build_query($arr);//将数组变成url参数
parse_url(); //解析url
parse_str();//将字符串解析成多个变量
file_exists();//判断文件是否存在
is_file();//判断是否是文件
is_dir();//是否是文件夹
is_writeable();//是否可写
is_readable();//是否可读
is_executable()://是否可执行
chmod(); //改变权限0777 rwx
pathinfo(); //返回数组,路径信息
basename();//获取文件名

dirname();//获取文件夹的名字
http_build_query($arr);//将数组变成url参数
parse_url(); //解析url(parse就是解析分析的意思)
parse_str();//将字符串解析成多个变量

file_exists();//判断文件是否存在
is_file();//判断是否是文件
is_dir();//是否是文件夹
is_writeable();//是否可写
is_readable();//是否可读
is_executable()://是否可执行
chmod(); //改变权限0777 rwx
1、mkdir()//创建文件夹若要创建 test/a/b/cmkdir('test/a/b/c', 0777, ture); //第二个参数写权限,第三个ture表示递归创建2、rmdir()//删除文件夹(只能删一级目录,多层目录要递归删除)3、opendir()//返回资源,文件夹读取eg:$dir=opendir('test');echo readdir($dir).'<br />'; //.echo readdir($dir).'<br />'; //..echo readdir($dir).'<br />'; //a4、closedir($dir);//关闭文件夹5、unlink();//删除文件6、copy('a.txt','bb.txt');//拷贝文件7、rename('bb.txt','ab.php');//重命名

递归删除目录:
<?phprm('test');function rm($path) {//test//打开目录$dir=opendir($path);//跳过两个特殊的命令结构 . 和 ..readdir($dir);readdir($dir);//循环删除while($newFile=readdir($dir)){//判断是否是文件还是文件夹,如果是文件,直接删除$newPath=$path.'/'.$newFile;if(is_file($newPath)){unlink($newPath);}else{rm($newPath);}}closedir($dir);rmdir($path);}?>
文件上传
form.html:
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Document</title></head><body><!-- 文件上传一定要写 enctype="mutipart/form-data" --><form action="upload.php" method="post" enctype="mutipart/form-data"><input type="file" name="file" /><input type="submit" value="上传" /></form></body></html>
upload.php:
https://www.php.net/manual/zh/features.file-upload.errors.php
//判断是否有错误号,查手册 is_upload_file——》文件上传处理——》错误信息说明<?php//判断是否有错误号//var_dump($_FILES);if($_FILES['file']['error']){switch($_FILES['file']['error']){case 1:$str='上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值';break;case 2:$str='上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值';break;case 3:$str='文件只有部分被上传';break;case 4:$str='没有文件被上传';break;case 6:$str='找不到临时文件夹';break;case 7:$str='文件写入失败';break;}echo $str;exit();}//判断你准许的文件大小if($_FILE['file']['size'] > (pow(1024,2)*2)){exit('文件大小超过准许大小');}//判断你准许的MIME类型 文件后缀$allowMime=['image/png','image/jpeg','image/gif','image/wbmp'];$allowSubFix=['png','jpeg','gif','wbmp','jpg']; //准许的后缀$info=pathinfo($_FILES['file']['name']);$subFix=$info['extension'];if(!in_array($subFix, $allowSubFix)){exit('不准许的文件后缀');}if(!in_array($_FILES['file']['type'],$allowMime)){exit('不准许的MIME类型');}//拼接上传路径$path='upload/';if(!file_exists($path)){mkdir($path);}//文件名随机$name=uniqid().'.'.$subFix;//判断是否是上传文件if(is_upload_file($_FILES['file']['tmp_name'])){if(move_uploaded_file($_FILES['file']['tmp_name'], $path.$name)){echo '文件上传成功';}else{echo '文件移动失败';}}else{echo '不是上传文件';exit;}?>
