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