一、导学
学习目标及重难点:
《 动态网页设计与制作 》专业课程教学设计模板
课程名称 | 动态网页设计与制作 | 任课教师 | 韩多成 | |||
授课日期 | 年 月 日 | 年 月 日 | 年 月 日 | 年 月 日 | ||
授课班级 | ||||||
授课地点 | ||||||
教研室主任审核意见 |
签名: 年 月 日 | |||||
题 目 | 文件的打开与关闭 | |||||
学习目标 | 知识目标 | 1.打开文件 2.关闭文件 3.文件读取 | ||||
技能目标 | 培养学生的自学能力、动手实践能力和创新能力。 | |||||
素质目标 | 培养学生的团队精神和成功意识,增强学生学习的自信心,形成主动学习的良好氛围。 | |||||
教学重点
| 内 容 | 打开文件 关闭文件 文件读取 | ||||
突破方法与手段 |
讲授法,探索教学,讨论法,练习法
| |||||
教学难点 | 内 容 | 打开文件 关闭文件 文件读取 | ||||
突破方法与手段 | 讲授法,探索教学,讨论法,练习法 | |||||
教学资源 |
多媒体机房、ppt课件、配套资源、教案、教材 | |||||
二、教学过程:
1、观看微视频:文件操作
理解各种不同文件打开方式的区别,掌握文件的打开与关闭操作函数
理解不同文件写入方式的差别,掌握文件写入函数的应用
掌握文件读取函数的应用
2、理解文件操作函数,包括文件的打开与关闭、文件的写入、文件的读取等操作,输入并调试对应的程序代码。
3、整理笔记、完成本节课测试作业。
三、教学资料:
教案:
《 动态网页设计与制作 》专业课程教学设计模板
课程名称 | 动态网页设计与制作 | 任课教师 | 韩多成 | |||
授课日期 | 年 月 日 | 年 月 日 | 年 月 日 | 年 月 日 | ||
授课班级 | ||||||
授课地点 | ||||||
教研室主任审核意见 |
签名: 年 月 日 | |||||
题 目 | 文件的打开与关闭 | |||||
学习目标 | 知识目标 | 1.打开文件 2.关闭文件 3.文件读取 | ||||
技能目标 | 培养学生的自学能力、动手实践能力和创新能力。 | |||||
素质目标 | 培养学生的团队精神和成功意识,增强学生学习的自信心,形成主动学习的良好氛围。 | |||||
教学重点
| 内 容 | 打开文件 关闭文件 文件读取 | ||||
突破方法与手段 |
讲授法,探索教学,讨论法,练习法
| |||||
教学难点 | 内 容 | 打开文件 关闭文件 文件读取 | ||||
突破方法与手段 | 讲授法,探索教学,讨论法,练习法 | |||||
教学资源 |
多媒体机房、ppt课件、配套资源、教案、教材
| |||||
教学过程设计 | ||||||||||||||||||||
教学环节 (用时) | 内容设计 | |||||||||||||||||||
情景引入 | 教学内容 | 点名,复习上节课内容及总结作业,引入本节课所要讲解内容。 循环结构语句 【引入】通过前面的学习,我们可以编写简单的脚本程序。有时候我们要存储多个同一类型的数据,定义多个变量使得变量名太多而难于记忆,容易混淆。我们可以用数组来存放这样的数据。 | ||||||||||||||||||
教师活动 | 点名,回顾上节课学习内容,引入本节课学习内容 | |||||||||||||||||||
学生活动 | 回顾上节课内容,了解本节课学习内容 | |||||||||||||||||||
设计意图 | 通过温故知新,引入本节课学习内容 | |||||||||||||||||||
新课讲授 | 教学内容 | 文件操作
文件的打开与关闭 打开一个文件是指获得一个文件的操作权限,而非真正显示该文件的可视窗口。 打开文件通过fopen()函数来实现。其语法格式如下: fopen($filename,operation_type,[$include_path][,$handle]) $filename是必填参数,指定所要打开的文件路径,该路径可以是本地文件路径,也可以是一个远程URL。若文件打开成功,函数返回一个文件号(句柄),若失败,返回false。 Operation_type是一个具有特定值含义的字符串参数,必填参数,用于指定文件的读写模式。必须慎重对待这个参数的值,否则就有可能将文件的内容全部删除。 Operation_type含义表
打开一个文件是指获得一个文件的操作权限,而非真正显示该文件的可视窗口。 打开文件通过fopen()函数来实现。其语法格式如下: fopen($filename,operation_type,[$include_path][,$handle]) $include_path是可选参数,指明文件的优先包含路径。如果在php.ini中设置了一个include_path路径,例如“E:\php_site\”,如果希望程序首先在这个路径下寻找、打开指定的文件,则将“$include_path”参数的值设为true或1。其默认值是0,程序会优先在根目录下寻找、打开指定的文件。 “$handle”参数可选,在打开远程文件时使用,它是一个变量,其中保存着函数打开对象的一些信息。 【例】 <?php $c_dir="E:\\myphp"; chdir($c_dir); $c_file=fopen("9.txt","r"); @$c_file2=fopen("12.txt","r"); if($c_file) {echo "打开文件9成功";} else {echo "打开文件9失败";} if($c_file2) {echo "打开文件12成功";} else {echo "打开文件12失败";} ?> 已打开的文件,操作完成以后,应当关闭该文件(断掉程序与文件之间的操作关系),以免引起不必要的错误。关闭文件的函数fclose()的语法格式如下: fclose($handle) $handle必须是一个通过fopen()打开的有效文件号。如果关闭成功,函数返回true,否则返回false,并产生一个错误信息。 文件的读操作 php读取文件内容时,根据一次性读取文件内容的长短,可以分为读取一个字符、一行字符串、整个文件或指定长度的内容。 按字符读取文件 用fgetc()函数,从打开文件中的读取一个字符,其语法格式如下: fgetc($handle) $handle的值必须是一个用fopen()函数打开的有效文件号 如果读取成功,函数返回读取的字符 如果是文件的末尾(EOF),回false 如果不是一个有效的文件号,返回false,并产生一个错误信息。 $c_dir="E:\\myphp"; chdir($c_dir); $c_file1=fopen("9.txt","r"); $c_file2=fopen("12.txt","r"); $c_file3=fopen("13.txt","r"); $c1=fgetc($c_file1); $c2=fgetc($c_file2); $c3=fgetc($c_file3); 【例】 <?php $c_dir="E:\\myphp"; chdir($c_dir); $c_file=fopen("9-24.txt","r"); while(($c=fgetc($c_file))!=false) { $c=nl2br($c); echo $c; } fclose($c_file); ?> 按行读取文件 利用fgets()函数,一次性可以读取指定文件中的一行内容。其语法格式如下: fgets($handle[,length]) 其中,$handle是必填参数,是一个用fopen()函数打开的文件号。 length是可选参数,用于指定读取一行内容以后,返回的内容大小,其默认值是1K(1024字节)。如果指定的长度以内,含有换行符或已到文件末尾(EOF==true),则只返回换行符或EOF之前的内容,否则,返回“长度-1”个字节,最后一个字节是文件结束符。如果文件读取成功,函数返回读取的内容,否则,返回false。 读取整个文件 读取整个文件的函数有:file()、readfile()、fpassthru()与file_get_contents()。 file()函数的功能是将一个文件读取到一个数组中,每一行的内容(包括换行符),作为数组的一个元素值。 readfile()函数与file()函数不同的是,它直接将整个文件读取并输出,同时还会返回已读取的字节数。 fpassthru()函数的功能是从文件指针的当前位置开始读取文件的内容直接输出,并返回已读取的字符数。 file()函数的语法格式如下: file($file_path[,include_path][,handle]) 其中,$file_path是必填参数,指定要打开文件的路径,它可以是本地文件路径,也可以是一个远程URL。 Include_path是可选参数,指明是否优先在user_include_path目录下搜索要打开的文件,默认值是false,在根目录下搜索。 如果文件读取成功,函数返回的是一个含有全部文件内容的数组,否则,返回false。 【例】 <?php $c_dir="E:\\myphp"; chdir($c_dir); $c_file=file("9-24.txt","r"); …… fclose($c_file); ?> readfile()函数与file()函数不同的是,它直接将整个文件读取并输出,同时还会返回已读取的字节数。其语法格式如下: readfile($file_path[,include_path][,handle]) 各参数的含义用法与file()函数相同。 需要注意的是,因为readfile()函数直接将文件读取到输出缓冲中,因此,readfile()函数本身就已经包含了输出功能,除非需要输出函数返回的字节数,否则,不需再使用输出语句。 【例】 <?php $c_dir="E:\\myphp"; chdir($c_dir); $c_file=file("9-24.txt","r"); …… fclose($c_file); ?> fpassthru()函数的功能是从文件指针的当前位置开始读取文件的内容直接输出,并返回已读取的字符数。其格法格式如下: fpassthru($handle) fpassthru()函数要读取的$handle(文件指针),必须是一个用fopen()函数打开的文件指针。如果函数读取内容成功,则将读取的内容输出,并返回已读取的字符数,否则返回false。 【例】 <?php $f_path="E:\\myphp\9-29.txt"; $f_num=fopen($f_path,"r"); $t=fgets($f_num); fpassthru($f_num); fclose($f_num); ?> file_get_contents()函数的功能是将文件中指定部分的内容读取到一个字符串中。其语法格式如下: file_get_contents($file_path [,include_path] [ ,handle] [,s_point] [,read_length]) 其中: $file_path、include_path与handle的含义、用法与file()函数相同; S_point是可选参数,用于指定开始读取的位置,默认从头开始; Read_lenght是可选参数,指定读取的长度,单位为字节,默认读到文件结束。 如果读取文件成功,函数返回一个包含了所读取内容的字符串,否则,返回false。 读取文件任意长度 fread()函数可以从文件中读取指定长度的内容(以字节为单位)。语法格式如下: fread($file_handle,read_length) 其中,$file_handle必须是一个用fopen()函数打开的文件号,read_length是一个整型参数,指定要从文件中读取的长度,单位是字节。如果读取成功,则返回读到的内容,否则,返回false。 【例】 <?php $f_path="E:\\myphp\9-30.txt"; $f_num=fopen($f_path,"r"); $t=fread($f_num,6); echo $t; $t=fread($f_num,7); echo $t; fclose($f_num); ?> 文件的写操作 PHP提供的文件写入操作函数有fwrite()与file_put_contents()。两者的主要区别在于前者需要打开文件才能进行写操作,后者不需打开文件即可写操作。 在对一个文件进行写操作之前,必须先保证该文件存在,并且已经以支持写入操作的模式打开。 fwrite()函数 fwrite()函数功能是将内容写入文件,语法格式如下: fwrite($handle,$content_str [,length]) $handle是必填参数,其值是用fopen()打开的、支持写入模式的文件号; $content_str是必填参数,指定要写入文件的内容; length是可选参数,指定要写入文件的字符数,如果这个长度比$content_str的长度大,则写入全部的$content_str,如果比$content_str的长度小,则截取$content_str中相应长度的内容写入文件。如果省略该参数,则默认写入全部的$content_str。 操作成功后,函数返回已写入的字符数,如果失败,则返回false。 【例】 <?php $f_path="E:\\myphp\9-24.txt"; $f_num=fopen($f_path,“a+"); $t=“hello!php”; $t=fwrite($f_num,$t); fclose($f_num); ?> file_put_contents()函数 fwrite()函数的功能是将内容写入指定的文件,语法格式如下: fwrite($handle,$content_str [,length]) $handle是必填参数,其值是用fopen()打开的、支持写入模式的文件号; $content_str是必填参数,指定要写入文件的内容; length是可选参数,指定要写入文件的字符数,如果这个长度比$content_str的长度大,则写入全部的$content_str,如果比$content_str的长度小,则截取$content_str中相应长度的内容写入文件。如果省略该参数,则默认写入全部的$content_str。 操作成功后,函数返回已写入的字符数,如果失败,则返回false。 <?php echo "<pre>"; $filename = "files/fileputcontent.txt"; $str = "明月几时有,把酒问青天。不知天上宫阙,今夕是何年?我欲乘风归去,又恐琼楼玉宇,高处不胜寒。起舞弄清影,何似在人间!转朱阁,低绮户,照无眠。不应有恨,何事长向别时圆?人有悲欢离合,月有阴晴圆缺,此事古难全。但愿人长久,千里共婵娟。"; echo file_put_contents ( $filename, $str ); echo file_put_contents ( $filename, $str ); // 覆盖 echo file_put_contents ( $filename, $str, FILE_APPEND ); // 追加 ?> 文件的内容指针 在对文件的读写操作中,需要对读写的位置进行定位,这就需要用到文件的内容指针函数。该类函数主要有feof()、rewind()、ftell()与fseek()等函数。 1、feof()函数 该函数用于判断当前指针位置是否处于文件内容的最尾部,若是,返回true,否则返回false。其语法格式如下: fenof($file_handle) 其中,$file_handle必须是一个用fopen()函数打开文件。 在对文件的读写操作中,需要对读写的位置进行定位,这就需要用到文件的内容指针函数。该类函数主要有feof()、rewind()、ftell()与fseek()等函数。 2、rewind()函数 用rewind()函数可以将指针的当前位置移到文件开头,其语法格式如下: rewind($file_handle) 其中,$file_handle必须是一个用fopen()函数打开的文件号。 3、ftell()函数 ftell()函数的功能是返回指针当前所在的位置,它的单位是字节。语法格式如下: ftell($file_handle) 其中,$file_handle必须是一个用fopen()函数打开的文件号。 4、fseek()函数 fseek()函数的作用是将文件指针移到指定的位置,以字节为单位。语法格式如下: fseek($file_handle , n_point [,seek_mode]) $file_handle是必填参数,必须是一个用fopen()函数打开的文件号。 N_point是必填参数,用于指定指针移动的位移量(字节); Seek_mode是可选参数,用于指明指针移动的模式,它只能是以下值之一: SEEK_SET :指针移到“n_point”中指定的字节处。默认值。 SEEK_CUR :指针移到当前位置+“n_point”处。 SEEK_END :指针移到文件末尾(EOF)加上 “n_point”处,(如果要指针从文件尾倒移,“n_point”必须是一个负值)。 <?php $filename = "files/libai.txt"; $handle = fopen ( $filename, "r+" ); echo "第一次读:<br />"; while ( ! feof ( $handle ) ) { echo fgets ( $handle ) . "<br />"; } echo "<hr />"; rewind ( $handle ); echo "第二次读:<br />"; while ( ! feof ( $handle ) ) { echo fgets ( $handle ) . "<br />"; echo "当前指针位置:" . ftell ( $handle ) . "<br />"; } echo "<hr />"; fseek ( $handle, 34 ); fwrite ( $handle, "野火烧不尽\n春风吹又生" ); rewind ( $handle ); echo "第三次读:<br />"; while ( ! feof ( $handle ) ) { echo fgets ( $handle ) . "<br />"; echo "当前指针位置:" . ftell ( $handle ) . "<br />"; } ?> 文件的其它操作函数 文件操作,除了打开、关闭与读写以外,还有复制、重命名、查看属性信息等操作,这些操作,都不需要打开文件,只要确保文件存在即可。 复制文件 复制文件使用copy()函数,其语法格式如下: copy($file_path,$past_path) $file_path为复制路径,$past_path为粘贴路径。 操作成功,函数返回true,否则返回false。 例如: copy(“E:\myphp\k.txt”,”E:\dir\e.txt”) 重命名 重命名一个文件与剪切一个文件是一样的,都使用rename()函数: rename($file_path,$past_path) $file_path为源路径,$past_path为粘贴路径。 操作成功,函数返回true,否则返回false。 例如: rename(“E:\myphp\k.txt”,”E:\dir\e.txt”) 删除文件 删除文件使用unlink()函数: unlink($file_path) 被删除的文件必须是一个存在的文件,并且不能已打开。 操作成功,函数返回true,否则返回false。 例如: unlink(“E:\myphp\k.txt”) 检查文件 检查一个文件是否存在,用is_file()函数: is_file($file_path) 若文件存在,函数返回true,否则返回false。 例如: is_file(“E:\myphp\k.txt”)==true; is_file(“E:\dir\k.txt”)==false; 查看文件的属性信息 fileatime($file_path):返回文件最后一次被访问的时间,这个时间用的是unix时间戳方式,是个整型的数值。 filemtime($file_path):返回文件最近修改的时间。其返回的时间格式与fileatime()一样。 filesize($file_path):用于获取指定文件的大小,单位是字节(bytes)若操作成功,返回文件的字节数,若失败,返回false,并产生一条错误提示信息。 | ||||||||||||||||||
教师活动 | 使用各种教学方法,利用多媒体机房和教学课件,教学案例等教学资源,对教学内容进行讲授 | |||||||||||||||||||
学生活动 | 配合教学活动,学习相关知识。 | |||||||||||||||||||
设计意图 | 讲授新知识,让学生学习本节课内容。 | |||||||||||||||||||
实践练习 | 教学内容 | 实践练习 结合本节课所学知识,理解教材上案例并调试运行。 完成操作练习题 | ||||||||||||||||||
教师活动 | 安排练习内容,辅导学生完成对应的操作练习 | |||||||||||||||||||
学生活动 | 领取实践练习任务,按照要求完成相关操作 | |||||||||||||||||||
设计意图 | 让学生能熟练掌握所学知识,通过实践练习进一步强化操作技能 | |||||||||||||||||||
板书设计 | ||||||||||||||||||||
作业布置 | 课后配套练习 | |||||||||||||||||||
教学反思 | ||||||||||||||||||||
教学课件:


