PHP 文件系统

  fopen(string filename,string mode [, bool use_include_path [, resource zcontext]])php

fopen()将filename指定的名字资源绑定到一个流上。如何filename的格式为url格式,则采用搜索协议处理器来处理此模式。不然看成普通文件执行。windows

若是PHP 认为filename指定的是一个本地文件,尝试在该文件上打开一个流。该文件必须是PHP中能够访问的文件。所以须要确认文件访问权限。数组

mode选项:r 只读 r+读写 w 写入(不存在就建立) w+读写(不存在就建立)具体mode函数

modepost

说明url

'r'spa

只读方式打开,将文件指针指向文件头。.net

'r+'unix

读写方式打开,将文件指针指向文件头。 在我为以前写入,就会覆盖原内容指针

'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]])

相关文章
相关标签/搜索