收藏 分享(赏)

PHP入门第17章 文件目录处理.ppt

上传人:11xg27ws 文档编号:8693475 上传时间:2019-07-07 格式:PPT 页数:14 大小:577.50KB
下载 相关 举报
PHP入门第17章  文件目录处理.ppt_第1页
第1页 / 共14页
PHP入门第17章  文件目录处理.ppt_第2页
第2页 / 共14页
PHP入门第17章  文件目录处理.ppt_第3页
第3页 / 共14页
PHP入门第17章  文件目录处理.ppt_第4页
第4页 / 共14页
PHP入门第17章  文件目录处理.ppt_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、文件目录处理,,基本的文件处理,要对文件进行操作,首先必须要打开这个文件。在PHP中使用fopen()函数打开一个文件。语法:resource fopen (string filename, string mode , int use_include_path , resource zcontext)说明:参数filename指定打开的文件名。参数mode设置打开文件的方式,参数值如表所示。参数use_include_path为可选参数,决定是否在include_path(php.ini中的include_path选项)定义的目录中搜索filename文件。参数context称为上下文,同样为

2、可选参数,是设置流操作的特定选项,用于控制流的操作特性。一般情况下只需使用默认的流操作设置,不需要使用此参数。,打开一个文件,基本的文件处理,文件打开之后,就可以进行读取和写入操作了,这里先讲解文件的读取。可以将PHP提供的文件读取函数分为4类:读取一个字符、读取一行字串、读取任意长度的字串和读取整个文件。 1fgetc()函数,读取一个字符fgetc()函数从文件指针指定的位置读取一个字符。语法:string fgetc ( resource handle )该函数返回一个字符,该字符从handle指向的文件中得到。遇到EOF则返回FALSE。2fgets()函数,读取一行字符fgets()

3、函数从文件指针中读取一行数据。文件指针必须是有效的,并且必须指向一个由fopen()或fsockopen()成功打开的文件。语法:string fgets( int handle , int length )说明:参数handle是被打开的文件;参数length是要读取的数据长度。fgets()函数能够从handle指定文件中读取一行并返回长度最大值为length1个字节的字符串。在遇到换行符、EOF或者读取了length1个字节后停止。如果忽略length参数,那么将读取到行结束。3fread()函数,读取任意长度的字串fread()函数从文件中读取任意长度的数据,还可以用于读取二进制文件。

4、语法:string fread ( int handle, int length )说明:参数handle为指向的文件资源,参数length指定要读取的字节数。此函数在读取到length个字节或者到达EOF时停止执行。,读取文件内容,基本的文件处理,4readfile()、file()和file_get_contents()函数,读取整个文件(1)readfile()函数readfile()函数读取一个文件并写入到输出缓冲,成功返回读取的字节数,失败返回FALSE。语法:int readfile ( string filename , bool use_include_path , resou

5、rce context )说明:参数filename指定读取的文件名称;参数use_include_path控制是否支持在include_path中搜索文件,如果支持,则将该值设置为TRUE;参数context是PHP 5.0新增内容。(2)file()函数file()函数将整个文件的内容读入到一个数组中。成功返回数组,数组中的每个元素都是文件中对应的一行,包括换行符在内;失败返回FALSE。语法:array file ( string filename , int use_include_path , resource context )说明:其参数与readfile()函数相同,唯一区别是

6、该函数返回值是数组。(3)file_get_contents()函数file_get_contents()函数将文件内容读入一个字符串。如果有offset和maxlen参数,将在参数offset所指定的位置开始读取长度为maxlen的内容。如果失败,返回FALSE。语法:string file_get_contents ( string filename , bool use_include_path , resource context , int offset , int maxlen )说明:参数filename指定读取的文件名称;参数use_include_path控制是否支持在inc

7、lude_path中搜索文件,如果支持,则将该值设置为TRUE。,读取文件内容,基本的文件处理,前面讲了打开和读取,下面介绍文件的写入操作。PHP中通过fwrite()和file_put_contents()函数执行文件的写入操作。1fwrite()函数,向文件中写入数据fwrite()函数执行文件的写入操作。它还有一个别名fputs()。语法:int fwrite ( resource handle, string string , int length )fwrite()函数把string的内容写入文件指针handle处。如果设置length,那么当写入length个字节或者完成strin

8、g的写入后,操作就会停止。fwrite()函数成功返回写入的字符数,失败则返回FALSE。2file_put_contents()函数,向文件中写入数据file_put_contents()函数将一个字符串写入文件中。成功返回写入的字节数,失败则返回FALSE。语法:int file_put_contents ( string filename, string data , int flags , resource context )file_put_contents()函数的参数说明如表所示。,向文件中写入数据,基本的文件处理,文件有打开就应该有关闭,对文件的操作结束后,应该关闭这个文件,否

9、则可能引起错误。在PHP中使用fclose()函数关闭文件。语法:bool fclose ( resource handle ) ;fclose()函数将参数handle指向的文件关闭,成功返回TRUE,否则返回FALSE。其中参数handle(文件指针)必须是有效值,并且是通过fopen()函数成功打开的文件。有关该函数的应用可以参考上面的实例,这里不再赘述。,关闭文件指针,目录操作技术,打开文件和打开目录虽然都是执行打开的操作,不但使用的函数不同,而且对未找到指定文件的处理结果也不同。fopen()函数如果未找到指定的文件,那么可能会自动创建这个文件,而打开目录函数opendir()却没有

10、那么勤劳和爽快,它会直接抛出一个错误信息。这就是PHP提供的打开目录的函数opendir()。opendir()函数打开一个指定目录。成功则返回目录句柄,否则返回FALSE。语法:resource opendir ( string path , resource context )说明:参数path指定要打开的目录路径,如果参数path指定的不是一个有效的目录,或者因为权限、文件系统错误而不能打开,opendir()函数将返回FALSE,并产生一个E_WARNING级别的错误信息。,打开指定目录,目录操作技术,应用opendir()函数打开目录之后,就可以利用其返回的目录句柄,配合PHP中提供

11、的scandir()函数完成对目录的浏览操作。scandir()函数浏览指定路径下的目录和文件。成功返回包含有文件名的array,失败则返回FALSE。语法:array scandir ( string directory , int sorting_order , resource context )说明:参数directory指定要浏览的目录,如果directory不是目录,那么scandir()函数将返回FALSE,并生成一条E_WARNING级的错误信息。参数sorting_order设置排序顺序,默认按字母升序排序,如果应用参数sorting_order,则变为降序排序。,读取目录结

12、构,目录操作技术,人做事情应该有始有终,编程也应该是如此。目录打开,完成操作之后,就应该关闭目录。PHP中通过closedir()函数关闭目录。语法:void closedir ( resource handle )说明:参数handle为使用opendir()函数打开的一个目录句柄。另外还可以应用rmdir()函数来删除目录,在应用rmdir()函数删除指定的目录时,被删除的路径必须是空的目录,并且权限必须要合乎要求,否则将返回FALSE。,关闭目录指针,文件的上传技术,开启文件上传功能,PHP中通过php.ini文件对上传文件进行控制,包括:是否支持上传、上传文件的临时目录、上传文件的大小

13、、指令执行的时间、指令分配的内存空间。在php.ini中,定位到File Uploads项,完成对上传相关选项的设置。上传相关选项的含义如下:file_uploads:如果值是on,说明服务器支持文件上传;如果为off,则不支持。一般默认是支持的,这个不用修改。upload_tmp_dir:上传文件临时目录。在文件被成功上传之前,文件首先存放到服务器端的临时目录中。多数使用系统默认目录,但是也可以自行设置。upload_max_filesize:服务器允许上传文件的最大值,以M为单位。系统默认为2M,如果网站需要上传超过2M的数据,那么就要修改这个值。上述是php.ini中File_Uploa

14、ds项中与上传相关选项参数设置说明,除了File_Uploads项中的内容外,在php.ini中还有其他几个选项会影响到文件的上传。max_execution_time:PHP中一个指令所能执行的最大时间,单位是秒。该选项在上传超大文件时必须要修改,否则即使上传文件在服务器允许的范围内,但是超过了指令所能执行的最大时间,仍然无法实现上传。memory_limit:PHP中一个指令所分配的内存空间。单位是M。它的大小同样会影响到超大文件的上传。,文件的上传技术,全局变量$_FILES应用,对上传文件进行判断应用的是全局变量$_FILES,$_FILES是一个数组,它包含所有上传的文件信息。下面介

15、绍一下$_FILES数组中每个元素的含义,如表所示。,文件的上传技术,将上传文件移动到指定目录,PHP中应用move_uploaded_file()函数实现文件上传。但是,在执行文件上传之前,为了防止潜在的攻击对原本不能通过脚本交互的文件进行非法管理,可以先应用is_uploaded_file()函数判断指定的文件是否是通过HTTP POST上传的,如果是则返回TRUE,则可以继续执行文件的上传操作,否则将不能够继续执行。1is_uploaded_file()函数is_uploaded_file()函数,判断指定的文件是否是通过HTTP POST上传的。语法:bool is_uploaded_

16、file ( string filename )说明:参数filename必须指定类似于$_FILESfilenametmp_name的变量,不可以使用从客户端上传的文件名$_FILESfilenamename。 通过is_uploaded_file()函数对上传文件进行判断,可以确保恶意的用户无法欺骗脚本去访问本不能访问的文件,例如/etc/passwd。2move_uploaded_file()函数move_uploaded_file()函数将文件上传到服务器中指定的位置。如果成功返回TRUE,否则返回FALSE。语法:bool move_uploaded_file ( string fi

17、lename, string destination )说明:参数filename指定上传文件的临时文件名,即$_FILEStmp_name;参数destination指文件上传后保存的新路径和名称。,文件的下载技术,有上传就应该有下载,这里介绍通过HTTP方式下载文件。其主要应用header()函数。header()函数,属于HTTP函数。其作用是以HTTP协议将HTML文档的标头送到浏览器,并告诉浏览器具体怎么处理这个页面。语法:void header ( string string , bool replace , int http_response_code )说明:string表示发

18、送的标头。replace表示如果一次发送多个标头,对于相似的标头是替换还是添加。如果是false,则强制发送多个同类型的标头。默认是true,即替换。http_response_code表示强制HTTP响应为指定值。通过HTTP下载的代码如下: header(“Content-type: application/x-gzip“); header(“Content-Disposition: attachment; filename=文件名“); header(“Content-Description: PHP3 Generated Data“); HTTP标头有很多,这里介绍的是下载的HTTP标头。其代码如下:header(Content-Disposition: attachment; filename=“filename“);在应用的过程中,唯一需要改动的就是filename。即将filename替换为要下载的文件。,Thank you,,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报