资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
浏览器传值GETPOST文件上传 昨日回顾 指针的操作 each key current next prev end reset 数组函数: array_keys array_values() array_key_exists() in_array() array_walk($arr,callback); 作用:使用回调函数对数组元素的键值与键名,遍历操作一次。 array_rand($arr,n); 随机获取n个元素的下标,返回值是获取到的下标组成的数组 shuffle($arr) range(m,n); 合并数组: +:不分索引与关联,将第2个数组中键名不同的元素添加到第1个数组中。array_merge() 索引数组:将第2个数组中的元素追加到第1数组中 关联数组:将第1数组中键名相同的元素覆盖掉,保留键名不相同的 = count()用于获取数组的长度 字符串函数 substr($str,start【,len】) strstrstrchr($str,$substr) strrchr strpos strrpos md5 32位字符 trim explode str_repeat addslashes ord($char) ASCII码 如何获取一个url中的文件名 /admin/index.php 时间函数 date($format【,$time】); time(); 用于获取时间戳,返回的是秒数 mktime(h,i,s,m,d,y); 用于获取指定时间点的时间戳 idate($format,$time); 数字函数 round($v【,n】); rand(m,n); 排序算法 选择排序: 每次循环,只记录下最大值的下标,循环之后将最大值的下标对应的元素,交换到数组的最后。 第1次与最大的与最后一个元素交换位置 第2次与倒数第2个交换位置 浏览器传值 url(get)与post 前台数据的提交 ulr(get)方式: 在前端提交数据时,组织数据的方式:将表单元素的name属性值与用户输入的数据组织成对的形式,在url中放到action指定的文件后,向后台传递数据。 示例: post方式: 在前端提交数据时,组织数据的方式:将表单元素的name属性值与用户输入的数据组织成对的形式,放到http协议内部,向后台传递数据。 firefox 中的firebug 示例: 模拟url传递数据 只要在请求某个php文件时,在请求的文件外后使用?加名值对的形式,就是在向后台php文件传递数据。 例如: a链接的href属性:href= x.php?id=20 js的location:location=x.php?id=20 form表单的action属性:action=x.php?id=30 只要可以写url的地方都适用。 a链接模拟url传递数据,很多时候向后台发出一个操作指令及操作指令所以依据数据。 get与post方式的区别: get方式: 传递的数据类型单一,只能传递文本性内容 传递的数据量小,由于是放在url中,一般url只能传递2k的数据 不安全,所有的数据放在url后面, post方式: 传递的数据类型多,不但能传递文本性数据,还能传递二进制的数据。 传递的数据量大, 相对安全,数据放在http协议内部 后台数据的接收 php为了我们提供了3个超全局变量(数组): $_GET 用于接收前台以get方式或模拟url文件传递的数据 $_POST 用于接收前台以post方式传递的数据 $_REQUEST 包含前台及get和post传递的数据 get与post方式数据的组织: 将收到的数据组织成关联数组: 将表单元素的name属性值作为数组元素的键名, 将用户输入的数据,作为数组元素的键值。 示例: 提示:前台的form表单元素必须设置name属性值。 复选框传递数据 对于同一组的复选框,需要在表单的name属性值后加,对于html没有任何意义,但是在php收到后会,在组织数据时,会自动转换成数组存储。示例: 复选框数据存储 复选框数据的回显 网页版计算器 前端页面: 03demo_cal.php 文件上传 文件上传就是将客户端的文件上传到服务器端(并不是简单的copy) 文件上传需要两部分:客户端、服务器端。 客户端: 利用form中的file表单元素进行文件上传 对于get方式只能传递文本性的信息,POST可以传递二进制数据 enctype:主要用于设置数据传递的方式 取值: aplication/x-url-encoded (默认)主要用于传输文本性 的数据。 multipart/form-data 用于设置传多种表单数据(文本数据与 二进制数据) 服务器端 php.ini中需要开启文件上传:file_uploads php.ini中临时目录:upload_tmp_dir php.ini中控制上传文件大的:upload_maxfile_size php文件上传的设置: php.ini中有一个 file_uploads 示例: upload_tmp_dir 用于设置文件上传的临时保存的目录,临时目录的特点:当脚本执行结束后,临时文件会被马上删除。 upload_max_filesize 用于设置php对上传文件大小的限制值 一上最多所能上传文件的限制 由于临时文件目录中会有脚本执行结束删除文件,那么需在脚本执行结束之前就将上传的文件,移动另的目录(专用于存储文件上传的目录) move_upload ed_file($filename,$target);函数 说明: $filename是文件名 $target是目录名(用户自定义的) 将$filename移动$dirname指定的目录 $_FIELS:主要用于记录文件上传的相关信息 封装文件上传函数 1、定义函数 2、由于需要根据表单元素的name属性值,在$_FILES数组中找到临时文件的完整文件名,还不能对前端的input表单元素的name属性值限制死。需要后台通过array_keys动态获取到input表单元素的name属性值 示例: 代码: 第3步:获取临时文件名 第4步:获取文件后缀 第5步:封装随机生成文件名函数 第6步:调用生成文件名函数 第7步:移动文件 文件上传错误信息 主要保存在$_FILESname属性值error 示例: error的值: upload_err_ok 0表示没有错误,上传成功 upload_err_ ini_size 1 upload_err_form_size 2 示例: upload_err_partial 3 upload_err_no_file 4 upload_err_no_tmp_dir 6 upload_err_cant_write7 示例: 第8步:对错误信息判断 /判断文件上传是否成功 switch($arr$verror) case 0: $arrFilesfilename=$fullname; $arrFilescode=0; break; case 1: $arrFilesfilename=false; $arrFilescode=超过php文件大小限制; break; case 2: $arrFilesfilename=false; $arrFilescode=超过form表单文件大小限制; break; case 3: $arrFilesfilename=false; $arrFilescode=网络原因部分上传; break; case 4: $arrFilesfilename=false; $arrFilescode=没有选择文件; break; case 6: $arrFilesfilename=false; $arrFilescode=没有临时目录; break; case 7: $arrFilesfilename=false; $arrFilescode=目录没有写权限; break; 文件操作 1、什么是文件? 文件就是计算机磁盘中的内容:文件(实际存储数据的文件)、目录(存储文件的文件) 2、对文件的操作 file_exists($filename); 说明: 作用判断一个文件进否存在 $filename是一个完整文件名(包含文件名与路径) filesize($filename); 说明: 作用判断一个
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号