PHP 文件系统
fopen(string filename,string mode [, bool use_include_path [, resource zcontext]])
fopen()将filename指定的名字资源绑定到一个流上。如何filename的格式为url格式,则采用搜索协议处理器来处理此模式。否则当作普通文件执行。
如果PHP 认为filename指定的是一个本地文件,尝试在该文件上打开一个流。该文件必须是PHP中可以访问的文件。因此需要确认文件访问权限。
mode选项:r 只读 r+读写 w 写入(不存在就创建) w+读写(不存在就创建)具体mode
|
mode |
说明 |
|
'r' |
只读方式打开,将文件指针指向文件头。 |
|
'r+' |
读写方式打开,将文件指针指向文件头。 在我为之前写入,就会覆盖原内容 |
|
'w' |
写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 |
|
'w+' |
读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 |
|
'a' |
写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 |
|
'a+' |
读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 |
|
'x' |
创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。 |
|
'x+' |
创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。 |
|
‘b’ |
二进制模式,用于与其他模式进行连接,如果文件系统能够区分二进制文件和文本文件可能会使用它,Windows区分二进制文件和文本文件,unix系统则不区分。这个是默认的模式 |
|
t |
文本,这个模式与其他模式进行结合。这个模式只是windows系统下的一个选
|
读取文件
string fgetc(resource handle);
string fgets(int handle[,int length])//从handle指向的文件中读取一行并返回长多最多为length-1字节的字符串
handle 是由fopen()或fsockopen()成功打开的文件
string fgetss( resource handle [, int length [, string allowable_tags]] )
和 fgets()相同,只除了 fgetss 尝试从读取的文本中去掉任何 HTML 和 PHP 标记。
可以用可选的第三个参数指定哪些标记不被去掉。
写入文件
int fwrite(resource handle,string string[,int length])
fwrite() 把 string 的内容写入 文件指针 handle 处。 如果指定了 length,当写入了 length 个字节或者写完了 string以后,写入就会停止,视乎先碰到哪种情况。
file_put_contents
int file_put_contents ( stringfilename, string data [, int flags [, resource context]] )
关闭文件
fclock()
操作值是一个打开的文件指针
在向一个文本文件中进行写入数据时,需要先锁定文件。以防其他用户同时也修改这个文件。
flock() 操作的handle 必须是一个已经打开的文件指针。operation 可以是以下值之一:
要取得共享锁定(读取程序),将 operation 设为 LOCK_SH(PHP 4.0.1 以前的版本设置为 1)。
要取得独占锁定(写入程序),将 operation 设为 LOCK_EX(PHP 4.0.1 以前的版本中设置为 2)。
要释放锁定(无论共享或独占),将 operation 设为 LOCK_UN(PHP 4.0.1 以前的版本中设置为 3)。
如果你不希望 flock() 在锁定时堵塞,则给 operation 加上 LOCK_NB(PHP 4.0.1 以前的版本中设置为 4)
目录处理函数
*目录也是一个特殊的文件。必须先打开然后读取然后关闭。
Fopen()函数如果未找到指定的文件,那么就会自动创建这个文件,而打开目录函数opendir()却会抛出错误信息。这就是php提供的打开的目录的函数opendir(); opendir(path,context)
closedir(resourse dir_handle)
mkdir()新建一个目录
Rmdie()删除目录,但是目录为空
Unlink()删除文件 返回bol
PHP通过php.ini文件对上传文件进行限制。
file_upload//on支持上传文件 off不支持上传文件
upload_tmp_dir上传文件临时目录
upload_max_filesize 允许上传文件最大值。
max_execution_time:php指令所能执行的最长的时间。在选择超大文本上传的时候,一定要配置这个选项。
memory_limit:php中一个指定分配的内存空间,单位为MB。它的大小同样影响到超大文件的上传。
上传超大文件的话就有必要对php.ini进行修改了。
在客户端对上传的文件进行控制。
这里的enctype=”multipary/form-data”:以二进制流传输
接下来介绍一下$_FILES数组中每个元素的含义。
|
函数名 |
说明 |
|
$_FILE[filename][name] |
存储文件的文件名 |
|
$_FILE[filename][size] |
存储文件大小,单位为字节 |
|
$_FILE[filename][tmp_name] |
存储文件在临时目录中使用的文件名,因为文件上传时首先要将其以临时文件的身份保存在临时目录中。 |
|
$_FILE[filename][type] |
存储上传文件的类型。 |
|
$_FILE[filename][error] |
存储和文件上传相关的错误代码, 0:表示没有任何错误,文件上传成功。 1:文件上传大小超出了限制的值 2:表示上传文件超出表单中max_file_size的值 3:表示文件只上传了一部分 4:表示没有上传任何文件 |
文件上传函数 boolen move_uploaded_file() 为了防止潜在的危险攻击,事先使用is_uoloadled_file()判断文件是够通过http=post上传。bol类型。
文件下载
通过http方式下载文件
void header(string string [,bool replace [, int http_response_code]])

浙公网安备 33010602011771号