php lesson~文件相关(文件函数,文件上传数据处理)
文件开闭:
fopen($file,"r"):打开文件
$file:url格式/本地文件(必须有访问权限;
“r”:文件访问类型===>
mode | 访问方式 | 文件指针 | 写入形式 |
r | 只读 | 文件头 | |
r+ | 读写 | 文件头 | |
w | 写入 | 文件头,并将文件大小截为0 | 覆盖原有内容 |
w+ | 读写 | 文件头,并将文件大小截为0,文件不存在则创建 | |
a | 写入 | 文件末尾,文件不存在则创建 | |
a+ | 读写 | 文件末尾,文件不存在则创建 | 在原有内容基础上写入 |
fclose():关闭文件
文件读取:
fread($file,$length):读取文件
$length:文件指针最多读取length个字节
停止读取:读取了length字节、到达文件末尾(EOF)
fgets($fp):逐行读取文件
文件指针:
feof($fp):判断文件指针是否到了结束位置
到达末尾返回true,反之false
//结合文件的逐行读取fgets:
while(!feof($fp)){ //读取前先判断是否到了结尾,到结尾则条件为false,不会再读取 $string = fgets($fp); echo $string; }
fseek($fp,$length):在文件指针中定位
$length:值指针从文件头开始以字节数度量的新位置
应用:写入文件,写入之后指针在末尾,下次读取时需要将指针设置为0的位置
fwrite($fp,"123"); fseek($fp,0);//将指针位置移动到0的位置读取 fread($fp);
fwrite($string,"a+"):写入文件
文件数据处理
文件通过表单上传时要在form表单中写入:enctype="multipart/form-data
$_FILES :接收上传文件的信息,原始数据如下:
array(1) {
["fileup"]=>
array(5) { ["name"]=> string(10) "enemy2.png"
["type"]=> string(9) "image/png"
["tmp_name"]=> string(45) "/Applications/XAMPP/xamppfiles/temp/phptoEbcS"
["error"]=> int(0)
["size"]=> int(175749) }
}
获取:$file=$_FILES["fileup"]
获取文件信息:
$name=$file["name"];--文件名
$type=$file["type"];----文件类型
$size=$file["filesize"];--文件的大小
$error=$file["error"];---文件错误信息
$tam=$file["tmp_name"];-上传文件的临时路径
nae 上传的文件原文件名,不代表文件,仅仅是
move_uploaded_file($filename,$destination):将上传文件移动到新的位置
$filename:临时路径
$destination:目标路径
返回值:成功返回true,不成功返回false(可以作为判断条件)
只拷贝上传的文件,非上传文件不会被拷贝(点击上传以后拷贝)
//文件只是单纯拷贝文件名,之后就会自动消失,所以要判断文件是否移动成功;
if(move_uploaded_file($upfile['tmp_name'],$upfile['name'])){ return $upfile['name']; };
copy(上传原文件路径,目标路径)