php_文件操作
来源:互联网 发布:网络杀机 百度云 编辑:程序博客网 时间:2024/05/22 11:47
一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定文件接收方将以什么形式、什么编码读取这个文件form的enctype属性为编码方式,常用有两种:1.(没有type=file的控件)application/x-www-form-urlencoded:默认2.(有type=file的控件)multipart/form-data:提交图片视频文件的编码格式,使用key/value标准格式
1.打开文件
<?php header("content-type:text/html;charset=utf-8"); //1.打开文本流 $file = fopen("1.txt", "a+"); $str = fread($file, filesize("1.txt"));//读取一个文件,参数2 :读多长个字符 //filesize() 获取文件长度 echo $str; fwrite($file, "hello world");//写 a+ //判断文件是否存在 if(is_file("12.txt")){ echo "yes"; }else{ echo "no"; $file = fopen("12.txt", "a"); fwrite($file, "hello world");//写 } //文件/文件夹->权限问题 //user (正常在本地操作) //group (软件操作文件) //other ()?>
2.给予权限
<?php $old = umask(0); //umask(0) 在创建新文件或目录时 屏蔽掉新文件或目录不应有的访问允许权限 $file = fopen("3.txt", "w"); fwrite($file, ""); //给予权限 umask($old); //开启权限 //chmod("2.txt", 0777); // 4 2 1 // r w x // 777 每一位代表的是 不同用户的操作权限 // user group other // rwxrwxrwx // r----wrw-?>
3.读写
<?php header("content-type:text/html;charset=utf-8"); $data = "我就要往里写"; //利用user的权限,直接覆盖操作文件 file_put_contents("3.txt", $data); //读取一个任意文件 //echo file_get_contents("http://www.baidu.com/s?wd=王"); echo file_get_contents("3.txt");?>
4.序列化与反序列化
<?php header("content-type:text/html;charset=utf-8"); echo "<pre/>"; $str = file_get_contents("jsonURL.json"); //反序列化 json_decode,一定格式的字符串转化为array / object $jsonArr = json_decode($str);//返回对象 print_r($jsonArr); print_r($jsonArr->head); echo "<br/>"; $jsonArr = json_decode($str,true);//返回关联数组 print_r($jsonArr); echo $jsonArr['law']; echo "<br/>"; //序列化 json_encode 把array / object序列化成一定格式的字符串 //重点:PHP向前端返回数组的时候,要返回的是序列化后的字符串给前端使用 $eStr = json_encode($jsonArr); print_r($eStr);?>
5.文件复制重命名_删除
<?php //复制 true成功 //参1:源文件 //参2:复制为哪个文件 //注:放的是文件路径 //echo copy("jsonURL.json", "2.json"); //重命名 //$a = rename("2.json", "5.json"); //删除 //echo unlink("5.json");?>
6.文件夹操作
<?php //1.新建文件夹 //echo mkdir("2b"); //chmod("2b",0777); //删除文件夹 $arr = scandir("2b");//扫描文件夹内的内容 foreach($arr as $v){ if($v != "." && $v != ".."){ unlink("2b/".$v); } echo $v; } echo rmdir("2b");//无法恢复 //判断一个路径是否为文件夹 if(is_dir("../06")){ echo "yes"; }else{ echo "no"; }?>
7.form表单提交:上传图片
<body><!-- 表单中enctype="multipart/form-data"的意思, 是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded, 不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据--><form action="09php_perfect_pic.php" method="post" enctype="multipart/form-data"> <input type="file" name="myFile" id="" value="" /> <input type="submit" value="提交文件"/></form></body>----------------------------------------------------------normal版本<?php //$_GET //$_POST //$_FILES 保存的是接收到的文件信息 header("content-type:text/html;charset=utf-8"); var_dump($_FILES); $arr = $_FILES["myFile"];//(Key前台约定的) $oldPosition = $arr["tmp_name"]; //移动(前端传递的文件,实在缓存里,自己移动到只定位置) $content = iconv("GBK", "UTF-8", $content); echo move_uploaded_file($oldPosition, $arr["name"]); //$_FILES["myFile"]["name"] 前端上传的文件的文件名 //$_FILES["myFile"]["type"] 前端上传的文件的文件类型 //image/jpg,image/jpeg,image/png,image/pjpeg,image/gif,bmp,image/x-png,text/php //$_FILES["myFile"]["tmp_name"] 前端上传的文件的文件类型 //$_FILES["myFile"]["error"] 错误信息 //0:文件上传成功 //1:超过文件大小限制(默认php.ini,2MB) //2:超过文件大小MAX_FILE_SIZE 选项规定的值 //3:文件☞传了一部分 //4:文件没有被上传 //5:文件上传大小为0 //$_FILES["myFile"]["size"] 文件大小?>--------------------------------------------------------super版本<?php header("content-type:text/html;charset=utf-8"); //判断缓存里的文件是否上传完毕 if(is_uploaded_file($_FILES["myFile"]["tmp_name"])){ $upFileArr = $_FILES["myFile"]; $name = $upFileArr["name"]; $type = $upFileArr["type"]; $size = $upFileArr["size"]; $tmp_name = $upFileArr["tmp_name"]; $err = $upFileArr["error"]; $isOk = 0;//保存此次判断结果( 0非法 1 合法) switch($type){ case "image/jpeg":$isOk = 1; break; case "image/png":$isOk = 1; break; case "image/jpg":$isOk = 1; break; case "image/gif":$isOk = 1; break; default: } if(1 == $isOk && 0 == $err){ if(!is_dir("up")){ mkdir("up"); chmod("up", 0777); } $mResult = move_uploaded_file($tmp_name, "up/".iconv("UTF-8", "gbk",$name));//将字符串的编码从UTF-8 转到gbk if($mResult == true){ echo "文件上传成功"; } }else{ echo "请检查文件类型"; } }?>
8.ajax上传文件(单个)
<body><input type="file" name="upload_file" id="upload_file" multiple="multiple" /><script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script><script type="text/javascript"> document.getElementById("upload_file").addEventListener("change",function(){ //console.log(this.files); console.log(this.files["length"]); var file = this.files[0]; var reader = new FileReader(); reader.readAsDataURL(file); reader.onload = function(ev){ var base64Str = ev.target.result; var name = file["name"] arr = base64Str.split(",")["1"]; $.ajax({ type:"post", url:"08php_accept_ajax_up_pic.php", data:{ base64Str:arr, name : name }, success:function(res){ alert(res); } }); } });</script></body>-----------------------------------------------------------<?php //首先 前端利用Ajia上传图片的时候, //没法直接上传整个文件, //我们需要把图片转成Base64编码,发给后台 //后台收到编码,进行解码得到图片 //建议:post提交 因为get长度有限制 header("content-type:text/html;charset=utf-8"); $base64Str = $_POST["base64Str"]; $name = $_POST["name"]; //反序列化 将图片解析成base64图片 $img = base64_decode($base64Str);// $name = md5(trim(microtime())).$name; $result = file_put_contents("up/".iconv("UTF-8", "gbk",$name), $img);//时间戳作为图片名 if($result){ echo "上传成功"; }else{ echo "上传失败"; }?>
阅读全文
0 0
- php_文件操作
- PHP_文件操作及文件下载
- PHP_字符串操作入门教程
- PHP_字符串操作入门教程
- PHP_文件目录
- PHP教程 PHP_字符串操作入门教程
- php_遍历目录_返回文件数组
- PHP_数组
- PHP_数组
- PHP_字符串
- PHP_会话
- php_函数
- php_变量
- php_语法
- tessract-ocr文本识别系统网页搭建php_进一步完善及操作流程详解
- PHP_常用正则表达式
- PHP_语法基础
- PHP_面向对象小记
- 新闻客户端
- 如何将多张图片合并成一个PDF文件
- 使用OpenCL+OpenCV实现图像卷积(三)
- MultiSplitPane 拖拽到边缘反弹问题解决
- 递归的java简单实现
- php_文件操作
- unity响应键盘的组合键
- Java容器排序的方法
- live555 linux 编译
- 蓝桥杯 ALGO-147 算法训练 4-3水仙花数
- Ubuntu简单命令集
- 蓝桥杯 ALGO-146 算法训练 4-2找公倍数
- Nginx 常用模块
- 蓝桥杯 ALGO-145 算法训练 4-1打印下述图形