企业网站开发php教程-文件系统与操作.ppt





《企业网站开发php教程-文件系统与操作.ppt》由会员分享,可在线阅读,更多相关《企业网站开发php教程-文件系统与操作.ppt(90页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、企企企企 业业业业 网网网网 站站站站 开开开开 发发发发PHPPHP版版版版讲师:王靖讲师:王靖课课 程程 目目 标标第第9章章 文件系统与操作文件系统与操作9第10章 PHP交互10第11章 Cookie与Session11第12章 图像处理12目录与文件目录与文件v第5章讲述了数组的工作原理、访问方法和常用函数。但是数组毕竟是存在于内存中的,不能长久的保存供以后使用,这就要求程序员对数组以及内存中有用的变量进行保存。数据的保存有很多形式,通过这一章的学习,就能找到其中的一种解决方案。在本章中,为了提高大家的动手能力,有些目录或文件并没有建立,我们可以根据系统提示的错误,找到解决的方法。操
2、作目录操作目录v目录在文件系统中是一个重要的概念,专业的术语把其解释成存储在磁盘上的文件及其他目录的索引,也可以将其视为一个文件夹,在文件夹中,可以放置其他的文件或文件夹,从而使得计算机的文件系统井井有条。最顶层的目录称为根目录,在PHP中用“/”或“”代表。“.”代表当前目录,“.”代表上级目录。目录操作目录操作 打开目录 关闭目录 读取目录 遍历目录 创建目录 删除目录 判断是否是目录判断是否是目录 v函数函数is_dir()用来判断是否是目录,其语法结构如下:用来判断是否是目录,其语法结构如下:vis_dir($path)v参数参数$path为打开目录的路径,如果文件名存在并且为为打开目
3、录的路径,如果文件名存在并且为目录,则返回目录,则返回 true。如果。如果 file 是一个相对路径,则按照是一个相对路径,则按照当前工作目录检查其相对路径。当前工作目录检查其相对路径。【范例】利用函数is_dir(),判断images是否是目录。判断是否是目录判断是否是目录 v 判断文件是否存在判断文件是否存在 v在对一个文件进行访问之前,一般需要先判断文件是否在对一个文件进行访问之前,一般需要先判断文件是否存在,因为用不恰当的方式访问一个并不存在的文件,存在,因为用不恰当的方式访问一个并不存在的文件,就会导致错误。在就会导致错误。在PHP中,中,file_exists()函数能够检查函数
4、能够检查文件是否存在,其结构形式如下:文件是否存在,其结构形式如下:vfile_exists($string)。v参数参数$string为一个指向为一个指向文件文件或或目录目录的字符型变量,如的字符型变量,如果文件或目录存在,则返回值果文件或目录存在,则返回值true,反之返回,反之返回false。【范例】如果网页需要调用php.txt,首先判断文件是否存在。如果不存在,发出警告“指定的文件不存在”,如果存在,输出“可以调用文件”。打开目录打开目录 v函数函数opendir()用来打开一个目录,其语法结构如下:用来打开一个目录,其语法结构如下:vopendir(string$path)v参数参
5、数$path为打开目录的路径,函数将返回一个打开目为打开目录的路径,函数将返回一个打开目录的句柄,用于存储当前的目录资源,打开目录前像打录的句柄,用于存储当前的目录资源,打开目录前像打开文件一样,要先检测目录是否存在,如果打开一个不开文件一样,要先检测目录是否存在,如果打开一个不存在的目录,程序将出错。存在的目录,程序将出错。【范例】利用函数opendir(),打开D盘下的images目录。打开目录打开目录v关闭目录关闭目录 v关闭目录利用函数关闭目录利用函数closedir(),其语法结构为:,其语法结构为:vclosedir($dp)v参数参数dp为使用函数为使用函数opendir()打开
6、的目录返回的打开的目录返回的资源对资源对象象。打开目录失败时释放资源打开目录失败时释放资源v读取目录读取目录 v在在PHP中使用中使用readdir()函数读取目录中的文件并返回文函数读取目录中的文件并返回文件名,其语法结构如下:件名,其语法结构如下:vreaddir($dp)v参数参数dp为使用函数为使用函数opendir()打开的目录返回的资源对打开的目录返回的资源对象象,函数返回目录下的文件名。下面通过示例讲解读取,函数返回目录下的文件名。下面通过示例讲解读取目录的方法。目录的方法。【范例】利用函数opendir(),打开D盘下的images目录,并读取其下面的文件。读取目录读取目录 v
7、遍历目录遍历目录 v一个目录下往往会存放很多文件,如果想查看某个目一个目录下往往会存放很多文件,如果想查看某个目录下存放的文件,可通过遍历目录,显示目录下的所录下存放的文件,可通过遍历目录,显示目录下的所有文件信息。目录就是一个典型的树形结构,实现遍有文件信息。目录就是一个典型的树形结构,实现遍历的方法很多,这里通过实例讲解目录的遍历。历的方法很多,这里通过实例讲解目录的遍历。【范例】利用递归实现遍历D盘images文件夹下所有的文件信息。遍历目录遍历目录 v 创建目录创建目录 v在备份当天数据或存放用户注册信息时,经常需要创建在备份当天数据或存放用户注册信息时,经常需要创建目录,目录,mkd
8、ir()函数可以实现目录的创建,其结构形式函数可以实现目录的创建,其结构形式如下:如下:vmkdir(string$dirname,int$mode)v参数参数$dirname为字符变量,内容为想要创建目录的名为字符变量,内容为想要创建目录的名称。参数称。参数$mode为整型变量,默认是为整型变量,默认是 0777,表示创建模表示创建模式式,执行此函数将在指定目录下创建新的目录执行此函数将在指定目录下创建新的目录,mode 在在 Windows 下被忽略下被忽略。新建目录新建目录v【范例】在chengxu文件夹内创建存放照片的文件夹pic。删除目录删除目录 vPHP提供一个提供一个rmdir(
9、)函数可以用来删除目录,其结构形函数可以用来删除目录,其结构形式如下:式如下:vrmdir(string$dirname)v参数参数$dirname为字符变量,为要删除目录的名称。为字符变量,为要删除目录的名称。【范例】删除D盘images的目录。删除目录删除目录vv删除目录要注意的问题:v以上代码尝试删除根目录下名为“temp”的目录。v目录删除成功将返回TRUE,如果删除失败将返回FALSE,并显示错误信息,可以使用“”符号来抑制错误信息的输出。取得当前工作目录取得当前工作目录v此函数用于获取当前的工作目录,通过对返回值的判断,确定当前操作的目录是否正确。代码如下所示。vv获取当前工作目录
10、时要注意的问题:v此函数运行时将返回一个字符串,记录当前目录情况。v失败将返回FALSE。改变当前目录改变当前目录v回FALSE。通过操作此函数,可以改变当前目录,以定位到可用资源,改变当前目录的演示代码如下所示。v?phpv/显示当前目录vecho getcwd().;v/改变当前目录vchdir(html);v/显示当前目录vecho getcwd().;v?v在使用chdir()函数时,要注意以下问题:v本例中的chdir()将当前目录更改为“html”。v成功返回TRUE,失败将返从目录句柄中读取条目从目录句柄中读取条目v使用readdir()函数,会从目录句柄中读取下一个文件的文件名
11、。配合while循环可以实现对目录的遍历,代码如下所示。v?php$dir=“html”;$handle=opendir($dir);if($handle!=false)echo 本目录包含:;/*这是正确地遍历目录方法*/while(false!=($file=readdir($handle)echo$file.;closedir($handle);elseecho“打开目录错误!”;?列出指定路径中的文件和目录列出指定路径中的文件和目录vscandir()函数返回一个数组,其中包含指定路径中的文件和目录。若成功,则返回一个数组,若失败,则返回 false。如果 directory 不是目录
12、,则返回布尔值 false 并生成一条 E_WARNING 级的错误。vscandir(directory,sort,context)directory必需。规定要扫描的目录。sort可选。规定排列顺序。默认是 0(升序)。如果是 1,则为降序。context可选。规定目录句柄的环境。context 是可修改目录流的行为的一套选项。v关闭目录句柄关闭目录句柄v在使用完opendir()打开的目录句柄后,应使用closedir()进行关闭,以节省服务器资源,代码如下所示。vdirectory类类v为了方便用户对目录的操作,PHP提供了一个类似使用面向对象机制的函数,它实际上相当于使用readdi
13、r()、rewind()、closedir()三个函数实现遍历目录的功能,dir(directory)vhandle.;vecho 路径:.$dir-path.;vwhile(false!=($entry=$dir-read()vecho$entry.;vv$dir-close();v?操作文件的一般方法操作文件的一般方法v上一节学习了使用相关目录函数对目录进行新建、打开、删除、读取及关闭等操作。在这一节中将学习操作文件的一般步骤,即:打开、读取、写入、关闭。而本节很多知识与上一节是相通的,如目录的打开与文件的打开,只不过它们使用的函数不一样而已。访问文件属性访问文件属性在进行处理文件之前,有
14、时需要知道文件的一些属性,如文件的大小、类型、修改时间、在进行处理文件之前,有时需要知道文件的一些属性,如文件的大小、类型、修改时间、访问时间和文件的权限等。访问时间和文件的权限等。PHP提供了一些函数可直接获取文件的属性。提供了一些函数可直接获取文件的属性。函函 数数 名名作作 用用参数及返回值参数及返回值filesize(string)获取文件获取文件的大小的大小参数参数string为一个指向文件或目录的字符型变量。函数的返回值为整型为一个指向文件或目录的字符型变量。函数的返回值为整型变量,变量,返回文件的大小返回文件的大小。如果出错,则返回。如果出错,则返回false。函数参数不能为远。
15、函数参数不能为远程文件,返回结果会被缓存程文件,返回结果会被缓存filetype(string)获取文件获取文件的类型的类型参数参数string为一个指向文件或目录的字符型变量。函数的返回值为字符为一个指向文件或目录的字符型变量。函数的返回值为字符型变量,可能出现的值有型变量,可能出现的值有fifo,char,dir,block,link,file和和unknown,返回值会被缓存,返回值会被缓存filemtime(string)获取文件获取文件修改的时修改的时间间参数参数string为一个指向文件或目录的字符型变量。函数的返回值为整型为一个指向文件或目录的字符型变量。函数的返回值为整型变量,
16、变量,返回文件的修改时间返回文件的修改时间fileatime(string)获取文件获取文件的访问时的访问时间间参数参数string为一个指向文件或目录的字符型变量。函数的返回值为整型为一个指向文件或目录的字符型变量。函数的返回值为整型变量,内容为变量,内容为文件的访问时间文件的访问时间fileperms(string)获取文件获取文件的权限的权限参数参数string为一个指向文件或目录的字符型变量。函数的返回值为整型为一个指向文件或目录的字符型变量。函数的返回值为整型变量,内容为文件相应的权限,同其他这一类的函数一样,参数不能变量,内容为文件相应的权限,同其他这一类的函数一样,参数不能为远程
17、文件,另外返回结果同样会被缓存为远程文件,另外返回结果同样会被缓存打开文件打开文件 v读取文件中的数据之前,必须要先打开一个文件,这是其他文件操作的基础。PHP使用fopen()函数打开一个文件,其结构形式如下:vresource fopen(string$filename,string$mode)v其中参数filename是所要打开的文件名,可以打开本地文件,其形式为“scheme:/”。也可打开远程Web服务器上的文件,其形式为“http:/.”。如果其形式为以“ftp:/.”开头,则其表示打开的文件是远程FTP服务器上的。参数mode是要打开文件的方式,参数$mode是可以接收的模式。代
18、码如下一页表所示,其中代码“b”和代码“t”仅作用于Windows系统。模模 式式说说 明明r只读方式打开,将文件指针指向文件头r+读写方式打开,将文件指针指向文件头w只写入方式打开,将文件指针指向文件头并将文件大小截为0。如果文件不存在,则尝试创建一个新文件w+写入方式打开,将文件指针指向文件头并将文件大小截为0。如果文件不存在,则尝试创建一个新文件a只写入方式打开,将文件指针指向文件末尾。如果文件不存在,则尝试创建一个新文件a+写入方式打开,将文件指针指向文件末尾。如果文件不存在,则尝试创建一个新文件x只创建和打开本地文件只用于写入,从文件起点开始。如果文件已经存在,则fopen()返回假
19、,而且PHP发送一个警告。如果文件不存在,则创建它x+创建和打开本地文件进行读取和写入,从文件起点开始。如果文件已经存在,fopen()返回假,而且PHP发送一个警告。如果文件不存在,则创建它b默认模式,与其他模式配合使用,用于对二进制文件和文本文件区别对待的文件系统。对于Windows是必需的t与其他文件配合使用,代表Windows文本文件。把行结束符n转换为rn。与b模式配合使用以提高可移植性vfopen()返回一个值,这个值包含一个文件句柄的整数,用来向执行文件操作的函数标识该文件。有时这个值被称为文件指针,指针就形如内存地址中的一个个小房间的门号。如果PHP打开文件失败,那么这个值是f
20、alse。利用常用的打开文件的方式打开本地文件和远程文件。打开文件打开文件v在学习打开文件之前先看一段代码。代码如下所示。v读取文件读取文件v文件操作中最频繁的应该是读取操作,所以在读取文件时一定要注意优化代码,这样才能从代码层面提高程序质量。代码里的fread(),就是基本的读取文件函数,它的原型如下所示string fread(int$handle,int$length)v读取文件读取文件v从文件中读取 10 个字节:vv读取整个文件:v写入文件写入文件v写入文件操作具有重大的意义,软件运行时计算出来的数据,用户提交、修改的信息,通常都需要保存下来,供以后使用。而把数据写入文件,就是其中的
21、解决方案之一。为了方便理解,先看一段简单的写入文件的程序,代码如下所示。vv代码里的fwrite(),就是写入文件函数,它的原型如下所示。vint fwrite(resource$handle,string$string,int$length)关闭文件关闭文件v关闭文件正确的说法是关闭一个已经打开的文件句柄,fclose()只有唯一的一个参数,即文件句柄。使用fopen()或fscokopen()成功打开的句柄,都可以使用其来关闭。v文件的基本操作文件的基本操作v在上一节中学习了操作文件的一般步骤,以及一些基础的文件系统函数。本节是在上节内容的基础上学习更多的文件系统函数及操作文件的技巧。在当
22、前目录新建文件在当前目录新建文件v新建文件使用的函数还是新建文件使用的函数还是fopen(),只不过是通过对fopen()的$mode值的选择来完成。在编写程序时,很多情况下要求某个文件的存在,作为程序的运行条件,这时就可以使用下面的代码:vv使用fopen()函数新建文件时,要注意以下几个问题:v这段简单的代码完成了在当前目录新建一个名为“model.txt”文件,注意如果fopen()的第一个参数是“html/model.txt”时,程序会在当前目录的子目录“html”,创建“model.txt”文件。v即使再短的打开文件操作,也应该使用关闭句柄函数。v新建文件时,很容易因为文件存在或权限
23、问题而失败,所以在新建文件前,应进行相关的检查。删除文件删除文件v使用unlink()函数,可以删除程序运行时产生的临时文件。unlink()函数有1个参数,即要删除文件的路径与文件名。v注意:使用unlink()函数删除文件时,如果删除成功,函数将返回TRUE值,如果删除失败,函数将返回FALSE值。v新建临时文件新建临时文件v很多情况下,变量会被保存下来,但等程序运行完成后,这些保存变量的文件就要被删除以节省服务器空间。但这个过程很麻烦的,程序员要记录过程中产生的文件的名称,还要使用函数对其进行删除操作。而PHP为了使这一工作能够快速有效的完成,为程序员提供了一个函数,即:tmpfile(
24、)函数,函数的演示代码如下所示。v新建具有唯一文件名的文件新建具有唯一文件名的文件vtempnam()函数与tempfile()函数的使用方法都是一样的,唯一区别的tempnam()函数将产生一个具有唯一文件名的文件。v复制文件复制文件v复杂文件就是根据源文件的内容,建立一个拥有同样内容的新文件。在不想破坏操作文件时,可以通过复制源文件,对新产生的文件进行操作。复制文件使用copy()函数实现,演示代码如下所示。v移动、重命名文件或目录移动、重命名文件或目录v使用rename()函数,可以移动、重新命名一个已经存在的文件或目录,rename(oldname,newname)函数重命名文件或目录
25、 。v写入文件写入文件v前面介绍过使用fwrite()函数写入文件的方法,在文件系统函数中,还可以使用fputs()、fputcsv()、file_put_contents()函数来把内容写入文件。vfputs()是fwrite()函数的别名,这两个函数的实现的功能是一样的,fputcsv()函数可以把数组按指定的规则写入文件,而file_put_contents(),可以把一个字符串直进写入文件。这3个函数各有特点,在实际应用中,就根据情况选择使用。写入文件写入文件vfwrite(file,string,length)写入文件使用fwrite()函数,其有3个参数,第1个参数是必选参数,其值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 企业 网站 开发 php 教程 文件系统 操作

限制150内