PHP之文件操作

1.读文件
readfile()函数读入一个文件,并且将其写入到输出缓冲,若成功,则返回从文件中读入的字节数,若失败,则返回false。
可以用@readfile()形式调用该函数,来隐藏错误信息。


2.filesize('xxx文件')会返回指定文件的大小,成功就返回具体的字节数,失败就返回false,并且声称一条E_WARNING级的错误,这个可以用来判断上传文件大小


3.fopen()可以打开文件或者URL
fopen(filename,mode,include_path,context)
mode有很多种,只读、读写(有三种)、写入(有两种)、创建并写入、创建并读写


filename如果是xxxx://...的格式,则被当做是URL


4.fread(file,length)读取文件(可安全用于二进制文件)
length必须写,可以写成filesize('xxxx文件')
如果只是想把一个文件的内容读入到一个字符串,用file_get_contents(),性能要好的多


5.fclose()关闭刚才打开的文件


6.fgets($file)会读取文件的第一行
echo fgets($file);
输出之后文件指针会移动到下一行,类似于each()
但是一直输出下去,到头了,就出不来了,而且没有提示


7.可以用feof()看是否到头了,检查是否已到达“end-of-file”(EOF)


8.fgetc()会读取单个字符,相比于fget更极致了,之后指针再向下移动






文件创建/写入:
1.可以利用fopen,当你指定的这个文件不存在的时候,就相当于创建他


如果执行的时候有错误,那么检查一下权限


2.写入:
fwrite()用于写入,fwrite('文件名','被写的字符串')
写入之前,先创建或者打开文件fopen,写入之后,再关闭fclose

当是打开文件的时候,会覆盖原文本


3.写入,也可以用file_put_contents('文件名','内容')

相比于fwrite,他相当于简写了fopen、fwrite、fclose,在写入小数据量的文件时,推荐使用这个,但是大数据量的时候,fwrite性能要好的多



文件上传:
1.html中form,要用post,使用input框,其中type类型设定为file,可以设置label与之搭配,


2.接收php:
使用全局变量$_FILE,接收,其中$_FILE里面一共有五项内容:
①$_FILES["file"]["name"],就是文件名称
②$_FILES["file"]["tmp_name"],存储在服务器的文件的临时副本的名称
③$_FILES["file"]["error"],由文件上传导致的错误代码
④$_FILES["file"]["size"],文件的大小,按字节算
⑤$_FILES["file"]["type"],文件类型,可以分为这么几大类:
应用程序:application
视频:video
声音:audio
图片:image
文本:text
还有一些不知名的大类别,其中小类别就更加细分,可以百度----$_FILES['']['type']的值----




3.接收的时候,为了安全,要对用户上传的大小,类型进行限制:
判断$_FILES['file']['type'] == 'image/pjpeg',或者$_FILES['file']['size'] <= 200000


4.保存文件
是这样的,上传文件会创建一个临时的副本,它会在脚本结束的时候消失,所以嘞,上传之后就要把它拷贝到另外的位置


①检查上传的文件是否存在:
file_exists('xxxx/路径下/xxx/xxxx.jpg'),否则下一步移动会覆盖已有的文件


②将文件移动到新位置
move_uploaded_file(file,newloc);
这两个参数必须写













































































你可能感兴趣的:(PHP,文件操作)