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

 

posted @ 2016-08-17 15:56  ZHOUFEI1  阅读(318)  评论(0)    收藏  举报