PHP应用开发与实践 教学课件 ppt 作者 马骏 第14章 文件和目录处理

上传人:E**** 文档编号:89401756 上传时间:2019-05-24 格式:PPT 页数:48 大小:1.88MB
返回 下载 相关 举报
PHP应用开发与实践 教学课件 ppt 作者  马骏 第14章 文件和目录处理_第1页
第1页 / 共48页
PHP应用开发与实践 教学课件 ppt 作者  马骏 第14章 文件和目录处理_第2页
第2页 / 共48页
PHP应用开发与实践 教学课件 ppt 作者  马骏 第14章 文件和目录处理_第3页
第3页 / 共48页
PHP应用开发与实践 教学课件 ppt 作者  马骏 第14章 文件和目录处理_第4页
第4页 / 共48页
PHP应用开发与实践 教学课件 ppt 作者  马骏 第14章 文件和目录处理_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《PHP应用开发与实践 教学课件 ppt 作者 马骏 第14章 文件和目录处理》由会员分享,可在线阅读,更多相关《PHP应用开发与实践 教学课件 ppt 作者 马骏 第14章 文件和目录处理(48页珍藏版)》请在金锄头文库上搜索。

1、,本章要求:,第14章 文件和目录处理,文本文件的打开 读取文件内容 向文件中写入数据 文件的创建、复制、移动和删除等技术 关闭文件指针 打开指定目录 读取目录结构 关闭目录指针,主要内容,1.基本的文件处理 2.常用目录操作 3.文件上传 4.综合实例通过文本文件统计页面访问量,第14章 文件和目录处理,14.1 基本的文件处理,14.1.1 打开一个文件 14.1.2 读取文件内容 14.1.3 向文件中写入数据 14.1.4 关闭文件指针,14.1.1 打开一个文件,要对文件进行操作,首先必须要打开这个文件,就像要把大象装冰箱里一样,如果不打开冰箱,怎么也装不进去。 在PHP中使用fop

2、en()函数打开一个文件,语法如下: resource fopen (string filename, string mode ,bool use_include_path , resource zcontext) 参数filename指定打开的文件名。 说明: 参数filename可以是包含文件路径的文件名(例如:“C:/windows/php.ini”或者“./php.ini”)。为了避免不同系统之间切换可能带来的麻烦,采用“/”作为路径分隔符。参数filename也可以是由某种协议给出的URL(例如:“http:/”或者“ftp:/ 表14-1 fopen()中参数mode的可选值,参数

3、use_include_path为可选参数,决定是否在include_path(php.ini中的include_path选项)定义的目录中搜索filename文件。例如:在php.ini文件中设置include_path选项的值为 “E:AppServwwwMRym14”,如果希望服务器在这个路径下打开所指定的文件,则设置参数use_include_path的值为1或TRUE。 参数context称为上下文,同样为可选参数,是设置流操作的特定选项,用于控制流的操作特性。一般情况下只需使用默认的流操作设置,不需要使用此参数。 说明: 这就是fopen()函数,在使用这个函数时应该谨慎从事,因为

4、从fopen()函数的参数中可以看到,使用这个函数不像平时用的note、word那么简单,一不小心就有可能将文件内容全部删掉。,【例14-1】 通过fopen函数打开指定的文件,代码如下。 ,运行本实例,在页面中看不到任何效果。但是,可以查看一下C盘的根目录,会有一个count.txt文件;在本实例根目录下的images文件夹,存储了两个图片:一个bg_01.jpg,另一个是bg_01.jpg的备份,读者可以看一下它们有什么不同。 另外,如果在本实例的根目录下,您没有创建count.txt文件,那么运行本程序您将看到如图14-1所示的错误信息。 图14-1 没有找到指定文件,返回的错误信息,文

5、件打开之后,就可以进行读取和写入操作了,这里先讲解文件的读取。可以将PHP提供的文件读取函数分为4类:读取一个字符、读取一行字串、读取任意长度的字串和读取整个文件。 1fgetc()函数,读取一个字符 fgetc()函数从文件指针指定的位置读取一个字符。函数语法如下: string fgetc ( resource handle ) 该函数返回一个字符,该字符从handle指向的文件中得到。遇到EOF则返回FALSE。 【例14-2】 应用fgetc()函数循环读取in.txt文件中的字符。 (1)在当前目录下创建txt文件夹,新建一个in.txt文本文件。向文件中写入如下内容,然后保存并关闭

6、文件。 hello world (2)创建index.php文件。首先定义文件路径,然后用只读方式打开文件,由于fgetc()函数只能读取单个字符,所以为了拼接for循环的循环条件,这里使用filesize()函数判断文本文件的数据长度。最后利用fgets()函数输出文本数据。核心代码如下: ,14.1.2 读取文件内容,运行结果如图14-2所示。 图14-2 循环读取文件数据,2fgets()函数,读取一行字符 fgets()函数从文件指针中读取一行数据。文件指针必须是有效的,并且必须指向一个由fopen()或fsockopen()成功打开的文件。fgets()函数语法如下: string

7、fgets( int handle , int length ) 参数handle是被打开的文件;参数length是要读取的数据长度。 fgets()函数能够从handle指定文件中读取一行并返回长度最大值为length1个字节的字符串。在遇到换行符、EOF或者读取了length1个字节后停止。如果忽略length参数,那么将读取到行结束。 说明: fgetss()函数是fgets()函数的变体,用于读取一行数据,同时fgetss()函数会过滤掉被读取内容中的html和php标记。语法如下: string fgetss ( resource handle , int length , stri

8、ng allowable_tags ) 参数handle指定读取的文件;参数length指定读取字符串的长度;参数allowable_tags控制哪些标记不被去掉。,【例14-3】 应用fgets()和fgetss()两个函数分别输出文本文件的内容,看两者之间有什么区别。 ,运行结果如图14-3所示。 图14-3 比较fgets()和fgetss()函数的输出结果 从图14-3中可以看出,应用fgets()函数读取的数据原样输出,没有任何变化;而应用fgetss()函数读取的数据,去除了文件中的html标记,输出的完全是普通字符串。,3fread()函数,读取任意长度的字串 fread()函数

9、从文件中读取任意长度的数据,还可以用于读取二进制文件。函数语法如下: string fread ( int handle, int length ) 参数handle为指向的文件资源,参数length指定要读取的字节数。此函数在读取到length个字节或者到达EOF时停止执行。 【例14-4】 应用fread()函数读取txt文件夹下in.txt文件的内容,具体步骤如下。 首先,定义文本文件在实例根目录下的存储位置。 其次,利用fopen()函数以只读方式打开文件并返回文件句柄。 然后,利用filesize()函数获取文本文件数据的长度。 最后,利用fread()函数输出文本数据。代码如下:

10、,运行结果如图14-4所示 图14-4 fread函数的使用,4readfile()、file()和file_get_contents()函数,读取整个文件 readfile()函数 readfile()函数读取一个文件并写入到输出缓冲,成功返回读取的字节数,失败返回FALSE。语法如下: int readfile ( string filename , bool use_include_path , resource context ) 参数filename指定读取的文件名称;参数use_include_path控制是否支持在include_path中搜索文件,如果支持,则将该值设置为TRU

11、E;参数context是PHP 5.0新增内容。 说明: 应用readfile()函数,不需要打开/关闭文件,不需要输出语句,直接应用函数即可。 file()函数 file()函数将整个文件的内容读入到一个数组中。成功返回数组,数组中的每个元素都是文件中对应的一行,包括换行符在内;失败返回FALSE。语法如下: array file ( string filename , int use_include_path , resource context ) 其参数与readfile()函数相同,唯一区别是该函数返回值是数组。 file_get_contents()函数 file_get_cont

12、ents()函数将文件内容读入一个字符串。如果有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控制是否支持在include_path中搜索文件,如果支持,则将该值设置为TRUE。 说明:读取整个文件中的内容

13、,推荐读者使用file_get_contents()函数。,【例14-5】 在了解了这些函数之后,下面编写一个实例,体会一下这些函数的功能。读取指定文件中的全部内容。 创建index.php文件,分别应用readfile()、file()和file_get_contents()函数读取指定文件中的内容。代码如下: file_get_contents()输出数据; /输出数据 echo file_get_contents($path); else if($number=“2“) /判断传递进来的参数是否等于2 echo readfile()输出数据;/输出数据 readfile($path);

14、else $array=file($path); /将数据保存在数组中 echo file()输出数据; /循环输出数据 for($a=0;$a“; type(“3“); /方法调用 type(“2“); type(“1“); ?,运行结果如图14-5所示。 图14-5 读取整个文件的输出结果 注意: 不知道大家是否已经注意到,在通过readfile()、file()和file_get_contents()函数读取整个文件中的内容时,不需要通过fopen()函数打开文件,也不需要使用fclose()函数关闭文件。但是,在读取一个字符、读取一行字符和读取任意长度的字符串时必须应用fopen()函

15、数打开文件后才能进行读取,在读取完成后还要应用fclose()函数关闭文件。,前面讲了打开和读取,下面介绍文件的写入操作。PHP中通过fwrite()和file_put_contents()函数执行文件的写入操作。 1fwrite()函数,向文件中写入数据 fwrite()函数执行文件的写入操作。它还有一个别名fputs()。其语法如下: int fwrite ( resource handle, string string , int length ) fwrite()函数把string的内容写入文件指针handle处。如果设置length,那么当写入length个字节或者完成string的

16、写入后,操作就会停止。fwrite()函数成功返回写入的字符数,失败则返回FALSE。 说明: 在应用fwrite()函数时,如果给出length参数,那么magic_quotes_runtime(php.ini文件中的选项)配置选项将被忽略,而string中的斜线将不会被抽去。 如果在区分二进制文件和文本文件的系统上(例如:Windows)应用这个函数,打开文件时,fopen()函数的mode参数要加上b。,14.1.3 向文件中写入数据,2file_put_contents()函数,向文件中写入数据 file_put_contents()函数将一个字符串写入文件中。成功返回写入的字节数,失败则返

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号