php动态网站开发教案_第1页
php动态网站开发教案_第2页
php动态网站开发教案_第3页
php动态网站开发教案_第4页
php动态网站开发教案_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

php动态网站开发教案《PHP动态网站开发》教案~年第2学期二○一七年二月

《ASP动态网站开发》课程教案授课班级15级淘宝班课次1授课方式理论课讨论课□实验课□习题课□其它□学时安排3授课题目(教学章、节或主题):PHP环境配备、数据类型惯用PHP运算类型、PHP条件、循环语句的介绍与应用教学目的、规定(分掌握、熟悉、理解三个层次):理解PHP环境的配备,wamp环境的设立。掌握PHP的数据类型及其数据的运算规则。掌握PHP的条件语句、循环语句的使用方法及语法规则。教学重点及难点:动态网站的环境配备与PHP的条件语句、循环语句的使用方法及语法规则。教学基本内容及办法手段PHP环境搭配和代码调试1、PHP的优势和背景PHP是能让你生成动态网页的工具之一。PHP代表:超文本预解决器(PHP:HypertextPreprocessor)。PHP是完全免费的,不用花钱,你能够从PHP官方站点()自由下载。你不必把头埋进100多页的文档中努力学习才能够写出一种象样的程序。只要理解某些基本的语法和语言特色,你就能够开始你的PHP编码之旅了。如果更加好的学习建议能够先看看些HTML和SQL的基础。2、PHP环境的搭配所需的工具:WampServer5集成环境Wamp5是Apache+PHP+Mysql在Windows下的集成环境,拥有简朴的图形和菜单安装。该版本集成了PHP5.2.5、Mysql5、Apache2、phpMyAdmin、SQLiteManager1.2.0满了大部分PHPer的需求…介绍一下wamp的虚拟目录、服务图标的显示、环境测试3、PHP惯用工具和数据库惯用工具PHP开发工具:ZendStodio,PHPedit,EditPlus2,easyeclipse,DW等MYSQL工具:MYSQLAdministrator4、书写和调试简朴的PHP代码从语法上看,PHP语言近似于C语言。能够说,PHP是借鉴C语言的语法特性,由C语言改善而来的。我们能够混合编写PHP代码和HTML代码,不仅能够将PHP脚本嵌入到HTML文献中,我们甚至还能够把HTML标签也嵌入在PHP脚本里。下列是你能够采用的几个办法。你能够选用其中一种你最适合的并且就这样坚持这种办法!从HTML中分离下列是能够使用的办法:

<?...?>短标签模式

<?php...?>原则模式

<scriptlanguage="php">...</script>类似于javascript模式

<%...%>修改模式,也能够支持在PHP中用“;”来分隔语句。那些从HTML中分离出来的标志也表达语句的结束。注释PHP支持C,C和Unix风格的注释方式:/*C,C风格多行注释*/

//C风格单行注释

#Unix风格单行注释例子:<?phpecho"HelloWorld!";或phpinfo();

?>5、如何解决简朴的PHP错误1、你要把PHP.ini里的display_errors

=

On才能够显示错误位置2、习惯使用echo或者print打印,每一步输出看看成果与否对的。3、学会使用注释来屏蔽符号来调试//………./*…………*/#4、要懂得看错误信息错误的显示信息的行数及什么错位置。PHP的数据类型源码调试1、PHP基本语法和数据类型(1)、PHP基本语法:1、htm和php混编<fontcolor=red>我好</font>2、一种语句以;(分号结束,英文半角)3、如何定义一种变量,和变量的使用$abc=9;//以$开始,以A-Z或a-zEcho$abc;(2)、PHP数据运算类型四种标量类型: boolean(布尔型)理解为真假型$bo=TRUE;$bo=FALSE;//赋值为0时为假,不小于0为真 integer(整型)$bo=1;$bo=-12; float(浮点型,也作“double”)理解为小数型$bo=1.001;$bo=3.1415926; string(字符串)$bo=“这段字符串orENWord”;//双引号支持转义字符,单引号不支持。两种复合类型: array(数组)$bo=array(1,2,3,4);$bo=array(“A”=>1,“B”=>2); object(对象)源码调试1、解压源码到网站目录2、按照数据库3、调试成功2、学习一种PHP源码调试(discuz论坛)惯用PHP运算类型介绍与应用1、算术运算//理解为数学运算例:5*6-122*(28+1)注:算术运算遵照数学运算规则:从左到右,先算乘除后算加减,碰到括号先算括号内.2、赋值运算//把一种值写入一种变量例:$a=1;$a+=2;$a*=3;注:把右边的值赋予左的变量。3、比较运算/用来拟定两个数之间的关系例:1==23!=25<3"ok"=="ok"1==='1'//值相等且类型相似,用echo输出时真为1,假不输出。注:比较运算得到的值为布尔值4、逻辑运算//先将比较的两边转换成布尔类型,再执行他们的关系例:1&&10or11xor1!$a注:逻辑运算得到的值为布尔值5、递增递减运算//只操作变量的一种运算例:$a++//$a=$a+1++$a$a--//$a=$a-1--$aPHP条件语句的介绍与应用if条件语句程序中最常见的,大部分语言中都存在的一种条件语句,在开发中起着至关重要的作用,格式以下:if…else…if…else…if…elseif…if(expr)echoTRUEelseechoFALSEif(expr){echoTRUE}else{echoFALSE}if(expr){echoTRUE}elseif(expr){echoCON}else{echoFALSE}2、switch条件语句在多个条件当中使用Switch更加精巧,格式以下:switch($i){case0:echo"输出0";break;case1:echo"输出1";break;case2:echo"输出2";break;default:echo“其它默认输出”;}if($i==0){echo"输出0";}elseif($i==1){echo"输出1";}elseif($i==2){echo"输出2";}PHP循环语句的介绍与应用1、breakn循环控制语句//也能够理解为循环中断语句,跳出循环语句break:跳出一层循环breakn;跳出N条for($a=1;$a<10;$a++){if($a==5)break;echo"循环".$a."</br>";}2、do…while循环语句do{……}while(expr)while(expr){……}先执行一次循环再判断条件先判断条件执再行一次循环for循环语句//for循环是PHP中最复杂的循环构造。for(expr1;expr2;expr3){……}for($i=1;$i<=10;$i++){echo$i;//$i=1:无条件执行//$i<=10,$i++:循环条件}作业、讨论题、思考题:PHP环境的配备,wamp环境的设立,练习PHP的条件语句、循环语句的使用方法及语法规则的应用。课后小结:本节课重要解说了PHP环境的配备,wamp环境的设立,介绍了PHP的数据类型及PHP多个运算及运算规则。重点介绍了PHP的条件语句、循环语句的使用方法及语法规则。《ASP动态网站开发》课程教案授课班级15级淘宝班课次2授课方式理论课讨论课□实验课□习题课□其它□学时安排3授课题目(教学章、节或主题):PHP数组、函数及Mysql介绍和创立新的数据库与数据库中的惯用SQL语句教学目的、规定(分掌握、熟悉、理解三个层次):纯熟掌握PHP数组的定义、数组的遍历、foreach的应用。掌握创立数据库的办法及其基本语句。掌握数据库中的惯用SQL语句。教学重点及难点:creat、select、update、insert语句的应用。教学基本内容及办法手段PHP数组的创立修改使用1、创立和修改数组/多维数组PHP中的数组是一种核心字或值的集合(值能够是任何一种类型,涉及另一种数组)PHP中使用array来创立一种数组:array(key=>value,key=>value……)例子:$arr=array(3,5,7,9,6);$arr=array("id"=>2,"title"=>3);用方括号的语法来修改数组:$arr[]=value$arr=array("a"=>"理论","b"=>"教程","c"=>"第二次课");$arr['a']="PHP学习";$arr['c']="第二讲";介绍一下print_r()函数$arr=array(array(2,4),array(3,5));print_r($arr);Array([0]=>Array([0]=>2[1]=>4)[1]=>Array([0]=>3[1]=>5))2、数组与数组的函数使用count函数统计数组条数count($arr);使用is_array函数判断数组is_array($arr);另一种创立数组的函数explodeexplode("key",value);//分解函数$a="1986-1983-";$arr=explode("-",$a);Print_r($arr);3、使用foreach遍历数组遍历数组诸多个办法,能够使用For循环,while循环,最巧妙的一种遍历数组foreach给我们带来了跟多方便foreach($arras$key=>$value){……}$arr=array(1986,1983,);foreach($arras$key=>$value){ echo"需要的核心字$key需要的值$value<br>"; }PHP函数和自定义函数1、PHP函数介绍函数就是为理解决某些常见问题实现制作好的“模”。PHP函数分为:系统内部函数和自定义函数。格式:func(val1,val2,…);例子date("Y-m-d")md5("zzhtpz")函数的优越性:控制程序设计的复杂性提高软件的可靠性提高软件的开发效率提高软件的可维护性提高程序的重用性查看PHP中文手册,查看有关的函数2、PHP如何自定义函数使用Function来自定义一种函数:格式:Functionfunc_name($val){……}函数的命名跟自定义变量同样,只能使用_,A~Z,a~z,一种自定义函数中的变量是局部的,函数外不生效,使用global全局变量的时候,在函数外才可使用变量(不建议)。为了放置全局变量的混乱能够使用unset($var)删除一种变量。functionee(){echo"输出自定义函数";}ee();functionee($val){echo"输出自定义函数".$val;}ee(33);3、使用自定义函数实例操作(1)使用return函数返回函数内部值functionee(){return"输出自定义函数";}$a=ee();echo$a;(2)自定义函数值的接受和选择性接受functionee($val){return"输出自定义函数".$val;}$a=ee("好?");echo$a;functionee($val,$val2=1){ $a=$val+$val2;return$a;}$a=ee(5);echo$a;functionee($val,$val2=1){ $a=$val+$val2;return$a;}$a=ee(5,6);echo$a;直接接受选择性接受(3)function_exists()判断函数与否存在//避免错误if(function_exists('ee')){ echo"真";}else{echo"假";}(4)引用返回值使用&符号Mysql介绍和创立新的数据库1、MYSQL介绍与概要MySQL是一种小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,现在已经被Sun公司收购,支持FreeBSD、Linux、MAC、Windows等多个操作系统,与其它的大型数据库例如Oracle、DB2、SQLServer等相比功效稍弱某些。1、能够解决拥有上千万条统计的大型数据2、支持常见的SQL语句规范3、可移植行高,安装简朴小巧4、良好的运行效率,有丰富信息的网络支持5、调试、管理,优化简朴(相对其它大型数据库)2、访问MYSQL的几个途径知识点:MYSQL默认使用的是3306端口1、使用工具MYSQL官方的工具访问:MySQLAdministratortool安装:环节下载Backupproject//备份Restore//导入MySQLquery//浏览表和数据库2、使用第三方工具访问:mysqlexec、mysql连接器3、使用WEB方式访问:phpMyAdmin//最常见比较:使用客户端工具操作效率高,安全性高,使用WEB方式简朴方便,不受限制。3、介绍数据库中惯用字段类型整数型:TINYINT,SMALLINT,INT,BIGINT小数型:FLOAT,DOUBLE,DECIMAL(M,D)字符型:CHAR,VARCHAR日期型:DATETIME,DATE,TIMESTAMP备注型:TINYTEXT,TEXT,LONGTEXT4、创立一种简朴的数据库创立一种数据库命令:CREATETABLE删除一种数据库命令:DROPTABLE修改一种字段名称:RENAMETABLE`原字段`TO`新字段`;删除一种字段:ALTERTABLE`表`DROP`原字段`插入一种字段:ALTERTABLE`表`ADD`新字段`…AFTER`原字段`CREATETABLE`test`(`id` int(10)NOTNULLauto_increment,`uid` varchar(10)NOTNULLdefault'0',`regdate`dateNOTNULL,`remark`textNULL,PRIMARYKEY(`id`))实例解说:1.将命令复制到phpmyadmin中建立表2.用客户端工具建立表//设计几个字段浏览/构造/SQL/搜索、插入、导出/import/操作.导入数据库文献1、SELECT查询语句和条件语句SELECT查询字段FROM表名WHERE条件查询字段:能够使用通配符*、字段名、字段别名表名:数据库.表名,表名惯用条件:=等于、<>不等于、in包含、notin不包含、like匹配、BETWEEN在范畴、notBETWEEN不在范畴<、>条件运算:and、or、()2、排序,分组,指针查询,计算分组语句:groupby字段排序语句:orderby字段,字段ASC/DESC指针查询:limit初始值,结束值计算:COUNT(*)统计函数MAX(*)最大值函数MIN(*)最小值函数AVG(*)平均值函数SUM(*)累计值函数(∑)3、Insert插入语句insertinto表名(字段…,…)values(值…,…)insertinto表名values(值…,…)插入时须考虑清晰字段类型避免插入后出现缺值,乱码现象Update更新语句UPDATE表名SET字段=值WHERE条件limit惯用条件:=等于、<>不等于、in包含、notin不包含、like匹配、BETWEEN在范畴、notBETWEEN不在范畴条件预算:and、or、()5、Delete删除语句DELETEFROM表名WHERE条件limit惯用条件:=等于、<>不等于、in包含、notin不包含、like匹配//%、 BETWEEN在范畴、notBETWEEN不在范畴条件预算:and、or、()MYSQL在PHP5中的应用1、PHP与mysql建立链接php.ini加载mysql组件:extension=php_mysql.dll前的;去掉extension_dir=""途径与否对的PHP链接mysql函数mysql_connect:启动MySQL链接$conn=@mysql_connect("localhost","root","")ordie("链接错误");mysql_select_db:打开一种数据库mysql_select_db("ww",$conn);注意:@和ordie隐藏错误和条件显示mysql_connect("主机","顾客名","密码")mysql_select_db("打开数据库",连接标记符);如果不特别声明连接标记符,则默认为是上一次打开的连接。2、如何去执行一种SQL语句mysql_query(SQL语句,连接标记符);阐明:mysql_query用来根据连接标记符向该数据库服务器的目前数据库发送查询,如果连接标记符默认,则默认为是上一次打开的连接。返回值:成功后返回一种成果标记符,失败时返回false。$sql="INSERTINTOtest(id,name,regdate)values('','huafan',now())";mysql_query($sql,$conn);3、两种查询函数array/row区别格式:mysql_fetch_row(result);阐明:mysql_fetch_row用来查询成果的一行保存至数组,该数组下标从0开始,每一种数组元素对应一种域。通过循环,能够将查询成果全部获得。$sql="SELECT*FROM`test`";$query=mysql_query($sql,$conn);$row=mysql_fetch_row($query);print_r($row);格式:mysql_fetch_array(result);阐明:mysql_fetch_array和mysql_fetch_row功效基本相似,只但是它除了能够用从0开始的偏移量作索引,还能够用域名作索引。值返回下一行的全部域值,并将其保存至一种数组中,没有行时返回false。$sql="SELECT*FROM`test`";$query=mysql_query($sql,$conn);$row=mysql_fetch_array($query);echo$row['name'];输出全部内容:$sql="SELECT*FROM`test`";$query=mysql_query($sql,$conn);while($row=mysql_fetch_array($query)){echo$row['name']."".$row['regdate']."<br>"."<hr>";}mysql_query("setnames'GBK'");解决中文乱码$conn=@mysql_connect("localhost","root","")ordie("链接错误");mysql_select_db("ww",$conn);mysql_query("setnames'GBK'");$sql="SELECT*FROM`test`";$query=mysql_query($sql,$conn);while($row=mysql_fetch_array($query)){echo$row['name']."".$row['regdate']."<br>"."<hr>";}4、其它惯用Mysql函数介绍mysql_num_rows用于计算查询成果中所得行的数目echomysql_num_rows($query);mysql_insert_id传回最后一次使用INSERT指令的ID。mysql_tablename获得数据库名称mysql_error返回错误信息mysql_close关闭MySQL链接学习制作PHP+MYSQL留言板1、设计一种完整程序的流程2、HTML部分表单标签的使用<formaction=""method="GET"><inputtype="text"size=10name="user"/><inputtype="text"size=20name="title"/><textareaname="content"></textarea><inputtype="submit"name="submit"/></form>3、PHP里的页面互相调用require()与require_once()普通放在PHP程序的最前面,PHP程序在执行前,就会先读入require所指定引入的文献,如果出现错误是致命的。include()与include_once()能够放在PHP程序的任何一种位置,PHP程序在执行届时,才会先读入include所指定引入的文献,如果出现错误将会提示。require('con.php');include('con.php');PHP接受参数的几个方式PHP5在默认的状况下接受参数是需要使用$_GET['value'];$_POST['value'];还能够在PHP.ini文献中的将register_globals=Off改register_globals=on能够直接使用,$value的值作业、讨论题、思考题:制作PHP+MYSQL留言板课后小结:本节课解说了PHP数组的创立修改,用foreach遍历数组,PHP函数的应用和如何自定义函数,Mysql的介绍和创立新的数据库。创立一种数据库命令:CREATETABLE,删除一种数据库命令:DROPTABLE,修改一种字段名称:RENAMETABLE`原字段`TO`新字段`;删除一种字段:ALTERTABLE`表`DROP`原字段`,插入一种字段:ALTERTABLE`表`ADD`新字段`…AFTER`原字段。介绍了SELECT查询语句和条件语句,排序,分组,指针查询,计算;Insert插入语句,Update更新语句,Delete删除语句,PHP与mysql建立链接:$conn=@mysql_connect("localhost","root","")ordie("链接错误");,如何去执行一种SQL语句:mysql_query(SQL语句,连接标记符);,两种查询函数array/row区别,其它惯用Mysql函数介绍如mysql_num_rows用于计算查询成果中所得行的数目echomysql_num_rows($query);mysql_insert_id传回最后一次使用INSERT指令的ID。mysql_tablename获得数据库名称,mysql_error返回错误信息,mysql_close关闭MySQL链接。《ASP动态网站开发》课程教案授课班级15级淘宝班课次3授课方式理论课讨论课□实验课□习题课□其它□学时安排3授课题目(教学章、节或主题):制作PHP+MYSQL留言板教学目的、规定(分掌握、熟悉、理解三个层次):理解设计一种完整程序的流程。掌握HTML部分表单标签的使用与PHP里的页面互相调用掌握PHP接受参数的几个方式及提交表单Javascript验证教学重点及难点:PHP接受参数的几个方式及提交表单Javascript验证。教学基本内容及办法手段实例操作我们的留言板创立表:CREATETABLE`message`(`id`tinyint(1)NOTNULLauto_increment,`user`varchar(25)NOTNULL,`title`varchar(50)NOTNULL,`content`tinytextNOTNULL,`lastdate`dateNOTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=gbkAUTO_INCREMENT=1con.php//数据库配备$conn=@mysql_connect("localhost","root","")ordie("连接失败");mysql_select_db("liuyanban",$conn);mysql_query("setnames'GBK'");add.php//操作文献include("conn.php");if($_POST['submit']){$sql="insertintomessage(id,user,title,content,lastdate)"."values('','$_POST[user]','$_POST[title]','$_POST[content]',now())";mysql_query($sql);echo"发表成功";}?><formaction="add.php"method="post">顾客:<inputtype="text"size="10"name="user"/><br>标题:<inputtype="text"name="title"/><br>内容:<textareaname="content"></textarea><br><inputtype="submit"name="submit"value="公布留言"/></form>list.php//列表文献<?phpinclude("conn.php");?><tablewidth=500border="0"align="center"cellpadding="5"cellspacing="1"bgcolor="#add3ef"><?php$sql="select*frommessage";$query=mysql_query($sql);while($row=mysql_fetch_array($query)){?><trbgcolor="#eff3ff"><td>标题:<?=$row['title']?>顾客:<?=$row['user']?></td></tr><trbgColor="#ffffff"><td>内容:<?=$row['content']?></td></tr><?}?></table>Head文献<head><b><ahref="add.php">添加留言</a>|<ahref="list.php">浏览留言</a>|<ahref="login.php">登录</a></b>5、提交表单Javascript验证6、str_replace替代函数str_replace(被替代的值,替代的值,被替代的内容);$content="asfdasfsafasfasdasfasfafasfasfafasfas";echo$content;输出:asfdasfsafasfasdasfasfafasfasfafasfas如果:$content="asfdasfsafasfasdasfasfafasfasfafasfas";echohtmtocode($content);functionhtmtocode($content){ $content=str_replace("\n","<br>",str_replace(""," ",$content)); return$content;}7、htmlspecialchars格式化html重要功效是将HTML格式化,避免在输出html时被浏览器执行8、md5加密函数md5(加密对象)9、COOKIE的使用和登陆作业、讨论题、思考题:设计一种留言板课后小结:本节介绍了设计一种完整程序的流程,HTML部分表单标签的使用,PHP里的页面互相调用,接受参数的几个方式,提交表单Javascript验证,str_replace替代函数。解说了htmlspecialchars格式化html,md5加密函数与COOKIE的使用和登陆。《ASP动态网站开发》课程教案授课班级15级淘宝班课次4授课方式理论课讨论课□实验课□习题课□其它□学时安排3授课题目(教学章、节或主题):PHP+MYSQL分页原理与PHP上传原理及应用及文献操作教学目的、规定(分掌握、熟悉、理解三个层次):理解SQL语句中的limit使用方法与学习分页的一种公式。掌握FORM标签enctype属性与$_FILES系统函数掌握move_uploaded_file函数与is_uploaded_file函数理解PHP部分文献操作函数与unlink()rmdir()删除函数教学重点及难点:分页公式与文献上传原理教学基本内容及办法手段1、SQL语句中的limit使用方法SELECT*FROMtable……limit开始位置,操作条数SELECT*FROMtable……limit0,20SELECT*FROMtable……limit10,202、学习分页的一种公式(1)分页原理所谓分页显示,也就是讲数据库中的成果集,一段一段显示出来(2)需要的条件怎么分段,目前在第几段(每页有几条,目前再第几页)前10条统计:select*fromtablelimit0,10第11至20条统计:select*fromtablelimit10,10第21至30条统计:select*fromtablelimit20,10(3)得到公式(目前页数-1)X每页条数,每页条数Select*fromtablelimit($1)*$PageSize,$PageSize3、parse_url()解析URL函数parse_url()是讲URL解析成有固定键值的数组的函数$ua=parse_url("http://username:password@hostname/path?arg=value#anchor");print_r($ua);成果:Array([scheme]=>http//合同[host]=>hostname//域名[user]=>username//顾客名[pass]=>password//密码[path]=>/path//途径[query]=>arg=value//获得的值[fragment]=>anchor//)4、$_SERVER["REQUEST_URI"]函数//除域名以外的值预定义服务器变量的一种,全部$_SERVER开头的都叫做预定义的服务器变量REQUEST_URI的作用是获得的目前URL,也就除域名外背面完整的地址途径。目前页为:/home.php?id=23&cid=22Echo$_SERVER["REQUEST_URI"]成果为:/home.php?id=23&cid=22简朴分页$pagesize=5;$sql="select*frommessagelimit5,$pagesize";$query=mysql_query($sql);while($row=mysql_fetch_array($query)){echo"<hr><b>".$row['user']."|".$row['title'];}分页实例/*分页程序*/include("conn.php");include("head.php");$pagesize=10;//每页需要显示几条信息$url=$_SERVER["REQUEST_URI"];//显示文献目录$url=parse_url($url);//把地址分析出来,分析成有固定键值的数组。//print_r($url);//http://localhost/liuyanban/fenye.php?id=2$url=$url['path'];//echo$url;取出翻页的地址$numq=mysql_query("select*frommessage");//查询出全部统计。$num=mysql_num_rows($numq);//统计总条数//echo$num;//查看成果if($_GET['page'])//对page的判断 { $pageval=$_GET['page']; $page=($pageval-1)*$pagesize;//得出page的值 $page.=','; }if($num>$pagesize){ if($pageval<=1)$pageval=1; echo"共$num条"."<ahref=$url?page=".($pageval-1).">上一页</a><ahref=$url?page=".($pageval+1).">下一页</a>";}$sql="select*frommessagelimit$page$pagesize";$query=mysql_query($sql);while($row=mysql_fetch_array($query)){echo"<hr><b>".$row['user']."|".$row['title'];}PHP上传原理及应用1、FORM标签enctype属性表单中enctype="multipart/form-data"的意思,是设立表单的MIME编码。默认状况,这个编码格式是application/x-www-form-urlencoded(通过浏览器传递文献),不能用于文献上传;只有使用了multipart/form-data(能够传递文献,文献是二进制编码格式),才干完整的传递文献数据。<formaction=""enctype="multipart/form-data"method="post"name="upform">上传文献:<inputname="upfile"type="file"><inputtype="submit"value="上传"></form>2、$_FILES系统函数//将文献转换为数组$_FILES['myFile']['name']客户端文献的原名称。$_FILES['myFile']['type']文献的MIME类型,例如"image/gif"。image/jpgimage/jpegimage/pngimage/pjpegimage/gifimage/bmpimage/x-pngapplication/x-zip-compressed

……$_FILES['myFile']['size']已上传文献的大小,单位为字节。$_FILES['myFile']['tmp_name']储存的临时文献名,普通是系统默认。存储途径$_FILES['myFile']['error']该文献上传有关的错误代码。0;文献上传成功。1;超出了文献大小php.ini中。2;超出了文献大小或MAX_FILE_SIZE选项指定的值。3;文献只有部分被上传。4;没有文献被上传。5;上传文献大小为0。3、move_uploaded_file函数//上传后移动文献到目的位置的函数move_uploaded_file(临时文献,目的位置和文献名);is_uploaded_file函数//判断上传MIME类型的文献函数is_uploaded_file(MIME);上传文献件实例<?php//上传文献判断if(is_uploaded_file($_FILES['upfile']['tmp_name'])){$upfile=$_FILES['upfile'];//print_r($_FILES['upfile']);测试成果$name=$upfile['name'];$type=$upfile['type'];$size=$upfile['size'];$tmp_name=$upfile['tmp_name'];$error=$upfile['error'];//echo$type;//测试输出成果switch($type){ case'image/jpg':$ok=1;break; case'image/jpeg':$ok=1;break; case'image/gif':$ok=1;break; case'image/png':$ok=1;break; case'image/pjpeg':$ok=1;break;}if($ok&&$error==0){ move_uploaded_file($tmp_name,'up/'.$name); echo"上传成功!";}}?><formaction=""enctype="multipart/form-data"method="post"name="upform">上传文献:<inputname="upfile"type="file"><inputtype="submit"value="上传"></form>文献操作1、PHP部分文献操作函数(fopen,fread,filesize,fwrite,fclose)(1)fopen打开文献函数fopen(途径和文献名,打开方式);R-只读W-写入A-读写(2)fread读取文献内容fread(打开的文献,结束位置);字节为单位(3)filesize读取文献大小,字节为计量单位filesize(途径和文献名);(4)fwrite写入文献内容fwrite(途径和文献名,写入的内容);(5)fclose关闭打开的文献fclose(途径和文献名);2、unlink()rmdir()删除函数unlink()删除文献函数:unlink(途径和文献名)rmdir()删除目录函数:rmdir(途径和目录名)实例解说:建立一种模板文献tmp.htm<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML3.2//EN"><html><head><metaname="generator"content="HTMLTidy,see"><title>标题:{title}</title></head><body>此新闻的内容:{content}</body></html>生成文献wenjiancaozuo.php$fp=fopen("tmp.htm","r");//只读打开模板$str=fread($fp,filesize("tmp.htm"));//读取模板中的内容分//echo$str;测试读取成果$str=str_replace("{title}","新标题",$str);$str=str_replace("{content}","新内容",$str);//替代内容fclose($fp);$handle=fopen('news.html','w');fwrite($handle,$str);fclose($handle);带循环的生成批文献$con=array(array('新闻标题','新闻内容'),array('新闻标题2','新闻内容2'),array('新闻标题3','新闻内容3'));foreach($conas$id=>$val){$title=$val[0];$content=$val[1];$path=$id.'.htm';$fp=fopen("tmp.htm","r");//只读打开模板$str=fread($fp,filesize("tmp.htm"));//读取模板中的内容分//echo$str;测试读取成果$str=str_replace("{title}","新标题",$str);$str=str_replace("{content}","新内容",$str);//替代内容fclose($fp);$handle=fopen($path,'w');fwrite($handle,$str);fclose($handle);echo"生成成功";}删除文献unlink('1.htm');作业、讨论题、思考题:制作一种留言板设计分页与文献上传课后小结:本节介绍了SQL语句中的limit使用方法与学习分页的一种公式,parse_url()解析URL函数,$_SERVER["REQUEST_URI"],FORM标签enctype属性,$_FILES系统函数解说了文献操作函数move_uploaded_file函数,is_uploaded_file函数,PHP部分文献操作函数(fopen,fread,filesize,fwrite,fclose),unlink()rmdir()删除函数。《ASP动态网站开发》课程教案授课班级15级淘宝班课次5授课方式理论课讨论课□实验课□习题课□其它□学时安排3授课题目(教学章、节或主题):面对对象开发的学习(一)教学目的、规定(分掌握、熟悉、理解三个层次):理解什么是面对对象,什么是类的概念掌握使用CLASS创立一种类及类的组员属性和组员办法,对象中的$this核心字掌握使用new函数对象实例化,创立一种和多个对象掌握初始化对象__construct()和析构函数__destruct()理解封装关键字:public,protected,private及封装有关函数:__set(),__get()熟悉继承核心字:extends,PHP继承的规则,基类办法重载和父类办法访问掌握抽象办法和抽象类的定义,抽象类和办法使用规则教学重点及难点:CLASS创立一种类及类的组员属性和组员办法,对象中的$this核心字与new函数对象实例化,创立一种和多个对象。初始化对象__construct()和析构函数__destruct()。教学基本内容及办法手段1、什么是面对对象,什么是类起初,“面对对象”是专指在程序设计中采用封装、继承、抽象等设计办法。可是,这个定义显然不能再适合现在状况。面对对象的思想已经涉及到软件开发的各个方面。如,面对对象的分析(OOA,ObjectOrientedAnalysis),面对对象的设计(OOD,ObjectOrientedDesign)、以及我们经常说的面对对象的编程实现(OOP,ObjectOrientedProgram)。传统开发办法存在问题1.软件重用性差,2.软件可维护性差,3.无较好的扩展性面对对象的要素1.抽象性,2.封装性,3.共享性,4.强调对象构造而不是程序构造面对对象的三大特点(封装,继承,多态)缺一不可什么是类我们能够理解成一种功效集合菜单,我们通过类来实现生成我们的办法2、使用CLASS创立一种类class办法名{……}3、类的组员属性和组员办法classMyPc{public$name;var$price;functionvod(){return"PHP100视频教程";}}4、使用new函数对象实例化new对象名(参数)例:classMyPc{ var$key;//public$key等价 public$name; functionvod() { echo"面对对象学习"; }}$pc1=newMyPc();$pc1->key="php";//访问组员属性echo$pc->key;$pc1->vod();//调用组员办法5、创立一种和多个对象创立一种和多个对象我们只需要多次使用new函数,进行对类的实例化类对象classMyPc{public$name;public$price;functionvod(){return"PHP学习教材";}……}$pc1=newMyPc();$pc2=newMyPc();$pc3=newMyPc();6、对象中的$this核心字$this核心字是用来访问目前对象中的对象属性和对象办法的系统变量classMyPc{public$name;public$price;functionvod(){$this->name;}……$this->vod();……}我们能够理解为$this是在对象中特殊的一种使用构造函数和变量的办法。$this仅能在目前对象中使用classMyPc{ public$name; functionvod() { echo$this->name.",播放电影"."<br>"; } functiongame() { echo$this->vod()."玩游戏"; }}$pc1=newMyPc();$pc1->name="家用电脑!";//访问组员属性$pc1->vod();//调用组员办法$pc2=newMyPc();$pc2->name="公司电脑!";$pc2->game()7、初始化对象__construct()我们在创立一种类有时候需要初始化某些操作,这个时候我们需要使用初始化函数,在PHP5中有两种初始化办法。1、原PHP4中我们需要建立一种与类名称相似的一种对象办法:若类改名字则内部初始化,也要改名字。2、在PHP5中继承了PHP4但为了更好的针对面对对象开发有了固定函数。classMyPc{functionMyPc(){初始化操作}}classMyPc{function__construct(){初始化操作}}classMyPc{ public$name;public$type; function__construct($name,$type) { $this->name=$name; $this->type=$type; } functionvod() { echo$this->name.$this->type.",播放电影"."<br>"; } functiongame() { echo$this->vod()."玩游戏"; }}$pc1=newMyPc("家用电脑","台式机");$pc1->vod();//调用组员办法$pc2=newMyPc("公司电脑","笔记本");$pc2->game();8、析构函数__destruct()//能够在对象释放时自动被调用的办法被称为析构函数。PHP4支持析构函数,通过登录在PHP运行终止时用register_shutdown_function()调用的函数,只有类似的实施办法。PHP5正式支持析构函数,能够在类中指定对象释放时的动作——能够理解为垃圾回收机制。当对象内部的操作执行完毕的时候,__destruct()被调用,然后对象所使用的内存被释放出来。规则:后进先出classMyPc{……function__destruct(){……}}function__destruct(){ echo"<br>====".$this->name;}输出成果====公司电脑

====家用电脑提前释放:$pc1=null;9、类的封装和应用封装核心字:public,protected,private封装是把某些有关的属性和行为隐藏起来,从而得到保护和安全。public表达全局,类内部外部子类都能够访问;protected表达受保护的,只有本类或子类或父类中能够访问;private表达私有的,只有本类内部能够使用;classMyPc{public$name;//全局属性,任何位置都能够引用protected$price;//保护属性,只有本类或子类或父类中能够访问privatefunctionvod()//私有属性,只有本类内部能够使用{$this->name;}……}封装有关函数:__set(),__get()某些特定操作的时候需要访问和赋值封装的类型,这个时候我们就需要其它的函数帮我们完毕这些操作,PHP为我们提供了个办法名:__set(),__get()__set()获得目前类中封装过私有属性或者办法重新执行或赋值操作__set($Name,$Value)__get()获得目前类中封装过属性或办法并转换成共有属性实例解说classMyPc{ private$name; function__construct($name='') { return $this->name=$name; } function__get($name)//间接访问私有变量 { return$this->name."========";//能够变化变量的输出方式}function__set($n,$v)//设立私有变量的值{ if($v=="zzh"){$this->$n=$v;}}}$pc1=newMyPc("我的电脑");$pc1->name="fdsgdsgdsg";echo$pc1->name;10、类的继承和应用继承核心字:extendsPHP类的继承,我们能够理解成共享被继承类的内容。PHP中使用extends单一继承的办法!被继承的类我们叫做父类(基类)继承者成为子类(派生类)。PHP继承的规则依次被继承,class3拥有class1、class2因此功效和属性,避免办法和属性重名。classroot{ functiondayin()//能够用封装类 protectedfunctiondayin() { return "rootprint<br>"; }} classsonextendsroot{ functiondayin2() {return "sonprint<br>";//return $this->dayin()."sonprint<br>"; }}$p=newson();echo$p->dayin();基类办法重载和父类办法访问由于属于向下继承的原理,基类不能使用派生类里内容,这个时基类的某些办法不能完毕我们的某些派生类的功效,我们就能够进行办法重载避免了,新建办法带来的混乱。办法重载我们也能够理解办法覆盖,在派生类里使用与基类办法重名的办法名称执行重载,重载时我们需要调用原始基类内容,再增加新内容,我们能够使用基类名::办法名称 classsonextendsroot{ functiondayin() { return root::dayin()."sonprint<br>"; }11、类的抽象办法和类抽象核心字:abstract抽象就是无法确切的阐明,但又有一定的概念或者名称,在PHP中声明一种抽象类或者办法我们需要使用adstract核心字。抽象办法和抽象类的定义一种类中最少有一种办法是抽象的,我们称之为抽象类。因此如果定义抽象类首先定义抽象办法。abstractclassclass1{abstractfunctionfun1();……}1、类中最少有一种抽象办法。2、抽象办法不允许有{}。3、抽象办法前面必须要加abstract。抽象类和办法使用规则抽象类的几个特点:1、不能被实例化,只能被继承。2、继承的派生类当中要把因此抽象办法重载才干实例化。不可实例化可实例化abstractclasscl1{abstractfunctionfun1();……}classcl2extendscl1{//继承functionfun1(){//重载全部抽象办法{}……}abstractclasscl1{ abstractfunctionfun1(); abstractfunctionfun2(); abstractfunctionfun3(); functionok() {}}classcl2extendscl1{ functionfun1()//重载抽象办法{echo"第一种";} functionfun2() {echo"第二个";}functionfun3(){echo"第三个";}}$p=newcl2();$p->fun1();作业、讨论题、思考题:建立一种类,定义三个属性和三个办法课后小结:本节课介绍了什么是面对对象,什么是类,使用CLASS创立一种类,类的组员属性和组员办法,使用new函数对象实例化。创立一种和多个对象,对象中的$this核心字,初始化对象__construct(),析构函数__destruct()。解说了封装关键字:public,protected,private,封装有关函数:__set(),__get(),继承核心字:extends,PHP继承的规则,基类办法重载和父类办法访问,抽象核心字:abstract,抽象办法和抽象类的定义,抽象类和办法使用规则。

《ASP动态网站开发》课程教案授课班级15级淘宝班课次6授课方式理论课讨论课□实验课□习题课□其它□学时安排3授课题目(教学章、节或主题):PHP面对对象开发的学习(二)与制作自己的PHP+MYSQL的类教学目的、规定(分掌握、熟悉、理解三个层次):理解核心字:final,self,static,const,interface,implements,instanceof。掌握多态的介绍与优势、多态的简朴应用。熟悉对象描述的配备,对象办法的异常解决及克隆对象的应用、自动载入对象的办法。熟悉惯用MYSQL函数、使用类封装惯用SQL操作,简化代码及认识面对对象在开发中的重要作用。教学重点及难点:MYSQL函数、使用类封装惯用SQL操作,简化代码及认识面对对象在开发中的重要作用与核心字的应用。教学基本内容及办法手段类中惯用核心字1、核心字:final用来定义类和办法的一种重要核心字,当定义类的时候该类将不能被继承,当用来定义办法的时候该办法将不能被重载finalclassclass1{//该类将不能被继承……finalfunctionfun1(){ //该办法将不能被重载……}……}实例解说finalclassMyPc{//加上final后就不能被继承 public$name='我的电脑'; finalfunctionpower()//加上final后就不能重载 { echo$this->name.",电脑打开中"; }}classmyextendsMyPc{ // functionpower(){//重载抽象办法//echoMyPc::power()."***************";//}}$p=newmy();$p->power();2、核心字:self用来用类访问目前类中的内容的核心字,类似与$this核心字,但$this是需要类实例化后来才能够使用,self能够直接访问目前类中的内部组员self::类内部组员(属性或者办法)等价与类名::类内部组员(属性或者办法)注意:由于没有实例化类访问内部属性或者办法是没故意义的,因此self普通用来访问类中的:静态组员,常量,或者其它定义内容。3、核心字:static用来定义类的静态属性或办法,能够在类未被实例化时使用,静态属性单独占用内存而不会因创立多个对象时而造成同样的办法或者属性重复占用。classclass1{static$name;staticfunctionfun1(){//静态办法内部严禁出现非静态内容……}

}类内部访问静态组员类名称::静态组员self::静态组员类外部访问静态组员类名称::静态组员实例解说finalclassMyPc{//加上final后就不能被继承static$name='我的电脑'; staticfunctionpower()//静态办法,使用$this核心字会出错 { //echo$this->name.",电脑打开中";this核心字就不能使用 echoself::$name.",电脑打开中";//用self办法访问静态属性。 } }//echoMyPc::$name;//静态属性能够被访问输出//MyPc::$name="你的电脑";//静态属性能够被访问修改$p=newMyPc();$p->power();4、核心字:const用来定义类中的常量,类似PHP外部定义常量的核心字define();Const只能修饰类当中的组员属性!classclass1{constNAME;functionfun1(){……}

}实例解说finalclassMyPc{constNAME='我的电脑'; staticfunctionpower() { echoself::NAME.",电脑打开中"; } }$p=newMyPc();$p->power();注意事项:1、建议大写常量2、常量不使用$符号类中接口的应用接口的介绍与创立核心字:interface接口:一种组员属性全部为抽象的特殊抽象类,在程序中同为规范的作用。抽象类1、类中最少有一种抽象办法2、抽象办法前需加abstract接口1、类中全部为抽象办法2、抽象办法前不用加abstract3、接口抽象办法属性为public4、组员属性必须为常量共同点:1、本身都不能被实例化,必须被继承或者引用。2、继承或者引用后,需要把全部抽象办法重载方可使用。接口有自己的创立核心字:interface与普通类的创立类似interfacedemo{//声明接口类constNAME="名字";//对象属性必须为常量functionFun1();functionFun2();//对象办法全部为抽象办法,前面不必加abstract}实例解说interfacedemo{ constNAME="名称";//声明一种变量试试 functionfun1();//前加一种abstract试试,建一种普通的办法试试 }2、接口的引用与规范核心字:implements接口引用区别与之前我们的学的类继承核心字extends,继承只能是单一性,而接口能够使用核心字:implements多个引用并用逗号,分开。设已有接口demo,demo2,demo3父类root1、普通类引用接口例子:classmypcimplementsdemo,demo2,demo3{……}2、抽象类引用接口例子:abstractclassmypcimplementsdemo,demo2,demo3{……}3、继承父类引用接口并存例子:classmypcextendsrootimplementsdemo,demo2,demo3{……}//先继承后接口,单继承多接口4、接口与接口继承:interfacedemo3extendsdemo{……}类中多态的应用1、多态的介绍与优势介绍:多态性是继抽象和继承后,面对对象语言的第三个特性。从字面上理解,多态的意思是“多个形态”,简朴来说,多态是含有体现多个形态的能力的特性,在OO中是指“语言含有根据对象的类型以不同方式解决。优势:OOP的模式并不仅仅是把诸多函数和功效集合起来,目的而是使用类,继承,多态的方式描述我们生活中的一种状况。从而使得我们的代码更含有“物”的意义。协助我们减少某些重复性的代码和条件语句的判断。2、运算符:instanceofPHP一种类型运算符。instanceof用来测定一种给定的对象与否来自指定的对象类。classA{}classB{}$thing=newA;if($thinginstanceofA){//判断变量$thing与否来自类Aecho'A';}if($thinginstanceofB){echo'B';}3、多态的简朴应用interfacemyusb{ functiontype(); functionalert();}classzipimplementsmyusb{ functiontype(){ echo"2.0"; } functionalert() {echo"正在检查————U盘驱动";}}classmp3implementsmyusb{ functiontype(){ echo"1.0"; } functionalert() {echo"正在检查————Mp3盘驱动";}}classmypc{ functionpcusb($what) { $what->type()."<br>"; $what->alert(); } }$p=newmypc();$zip=newzip();$mp3=newmp3();$p->pcusb($mp3);//插上不同的设备,就有不同的输出总结篇对象描述的配备办法名__tostring()我们能够直接打印对象句柄,从而获得该办法的基本信息或其它内容。classMy{function__tostring(){echo"我所要显示的内容";}}$p=newMy();echo$p;输出成果:我所要显示的内容2、对象办法的异常解决办法名__call($funname,$arr_value)调用某些不存在的对象办法的异常解决,使程序继续正常运行。classMy{function__call($n,$v){echo"错误的办法名".$n;echo"错误的参数".Print_r($v);//由于参数会有多个所要用数组的方式保存}//打印的时候也要就用print_r输出。}克隆对象的应用办法名__clone()核

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论