《php基础教程-绝对推荐PPT演示课件》由会员分享,可在线阅读,更多相关《php基础教程-绝对推荐PPT演示课件(355页珍藏版)》请在金锄头文库上搜索。
1、PHP基础教程PHP基础教程,绝对的推荐,适合新手,老手!看看吧。.1(第一讲第一讲)PHP环境搭配和代码调试环境搭配和代码调试PHP100视频教程本讲大纲:本讲大纲:1、PHP的优势和背景的优势和背景2、PHP环境的搭配环境的搭配3、PHP常用工具和数据库常用工具常用工具和数据库常用工具4、书写和调试简单的、书写和调试简单的PHP代码代码4、如何处理简单的、如何处理简单的PHP错误错误演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:.2(第一讲第一讲)PHP环境搭配和工具的使用环境搭配和工具的使用PHP100视频教程1、PHP的优势和背景的优势和背景PHP是能让你生成动态网页的工具之一
2、。PHP代表:超文本预处理器(PHP: Hypertext Preprocessor)。PHP是完全免费的,不用花钱,你可以从PHP官方站点(http:/ )自由下载。 我个人更喜欢PHP的非常简单的学习过程。与Java和Perl不同,你不必把头埋进100多页的文档中努力学习才可以写出一个象样的程序。只要了解一些基本的语法和语言特色,你就可以开始你的PHP编码之旅了。之后你在编码过程中如果遇到了什么麻烦,还可以再去翻阅相关文档。PHP的语法类似于C,Perl,ASP或者JSP。对于那些对上述之一的语言较熟悉的人来说,PHP太简单了 。当然你没有任何基础也是可以学习的。如果更好的学习建议可以先看
3、看些 HTML 和 SQL 的基础,当然今后如果牵扯到这方面的知识我也会尽量详细的讲解下我英文不好能学习吗?我英文不好能学习吗? 回答是回答是YSE我数学不好能学吗?我数学不好能学吗? 回答是回答是YES我没有基础看这个视频学习能学吗?我没有基础看这个视频学习能学吗? 回答也是回答也是YES我没耐心能学吗?我没耐心能学吗? 回答是回答是NO.3(第一讲第一讲)PHP环境搭配和代码调试环境搭配和代码调试PHP100视频教程2、PHP环境的搭配环境的搭配所需的工具: WampServer 5 集成环境 Wamp5是Apache+PHP+Mysql 在Windows下的集成环境,拥有简单的图形和菜单
4、安装。该版本集成了PHP5.2.5 Mysql5 Apache2 phpMyAdmin 2.11.2.1 SQLiteManager 1.2.0 满了大部分PHPer的需求下载地址: 注意事项:注意事项:1、增加、增加PHP支持组件支持组件2、增加、增加Apache组件组件3、PHP.iniHttp.conf的简单介绍的简单介绍.4(第一讲第一讲)PHP环境搭配和代码调试环境搭配和代码调试PHP100视频教程3、PHP常用工具和数据库常用工具常用工具和数据库常用工具下载地址: PHP开发工具:开发工具:ZendStodio,PHPedit, EditPlus2,easyeclipse,DW
5、等等MYSQL工具:工具:MYSQLAdministrator.5(第一讲第一讲)PHP环境搭配和代码调试环境搭配和代码调试PHP100视频教程4、书写和调试简单的、书写和调试简单的PHP代码代码从语法上看,PHP语言近似于C语言。可以说,PHP是借鉴C语言的语法特征,由C语言改进而来的。我们可以混合编写PHP代码和HTML代码,不仅可以将PHP脚本嵌入到 HTML 文件中,我们甚至还可以把 HTML 标签也嵌入在 PHP 脚本里。以下是你可以采用的几种方法。你可以选用其中一种你最适合的并且就这样坚持这种方法!从HTML中分离以下是可以使用的方法: .与Perl和C一样,在PHP中用“;”来分
6、隔语句。那些从HTML中分离出来的标志也表示语句的结束。注释PHP支持C,C 和Unix风格的注释方式:/*C,C风格多行注释风格多行注释 * */C风格单行注释风格单行注释 #Unix风格单行注释风格单行注释.6(第一讲第一讲)PHP环境搭配和代码调试环境搭配和代码调试PHP100视频教程4、如何处理简单的、如何处理简单的PHP错误错误1、你要把、你要把PHP.ini里的里的 display_errors=On才可以显示错误位置才可以显示错误位置2、习惯使用、习惯使用echo或者或者 print打印打印3、学会使用、学会使用注释注释来屏蔽符号来调试来屏蔽符号来调试 /./*/#.4、要懂得看
7、错误信息(、要懂得看错误信息(英文不熟悉阿拉伯数字总认识吧英文不熟悉阿拉伯数字总认识吧).7(第一讲第一讲)PHP环境搭配和代码调试环境搭配和代码调试PHP100视频教程还有什么疑问可以到还有什么疑问可以到提出提出 也可以以发送邮件到也可以以发送邮件到 (msn)感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 .8(第二第二讲)PHP的数据的数据类型型 源码调试源码调试PHP100视频教程本讲大纲:本讲大纲:1、PHP基本语法和数据类型基本语法和数据类型2 2、学、学习习一个一个PHP源码调试源码调试 (discuz (discuz论坛论坛) )演讲老师:张恩民演
8、讲老师:张恩民 支持网站:支持网站:.9(第二第二讲)PHP的数据的数据类型型 源码调试源码调试PHP100视频教程1、PHP基本语法和数据类型:基本语法和数据类型:(1)、)、PHP基本语法:基本语法:( (2)、)、PHP数据运算数据运算类类型型1、 、htm和和php混混编编2、一个、一个语语句以句以;(分号分号结结束束)3、 、如何定义一个变量,和变量的使用如何定义一个变量,和变量的使用四种四种标标量量类类型:型:boolean(布(布尔尔型)型)理解理解为为真假型真假型integer(整型)(整型)float(浮点型,也作(浮点型,也作“double”) )理解理解为为小数型小数型s
9、tring(字符串)(字符串)两种复合两种复合类类型:型:array(数(数组组) )object( (对对象)象) .10(第二第二讲)PHP的数据的数据类型型 源码调试源码调试PHP100视频教程boolean(布(布尔尔型)型)理解理解为为真假型真假型$bo=TRUE;$bo=FALSE;integer(整型)(整型)$bo=1;$bo=-12;float(浮点型,也作(浮点型,也作“double”) )理解理解为为小数型小数型 $bo=1.001;$bo=3.1415926;string(字符串)(字符串) $bo=“这这段字符串段字符串orENWord”;array(数(数组组) )
10、 $bo=array(1,2,3,4);$bo=array(“A”=1,“B”=2);.11(第二第二讲)PHP的数据的数据类型型 源码调试源码调试PHP100视频教程1 1、 解压源码到网站目录解压源码到网站目录2 2、 按照数据库按照数据库3 3、调试成功、调试成功.12(第二第二讲)PHP的数据的数据类型型 源码调试源码调试PHP100视频教程还有什么疑问可以到还有什么疑问可以到提出提出 也可以以发送邮件到也可以以发送邮件到 (msn)感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 .13(第第三三讲)常用常用PHPPHP运算类型介绍与应用运算类型介绍与应用
11、PHP100视频教程本讲大纲:本讲大纲:演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:1、算术运算2、赋值运算3、比较运算4、逻辑运算5、递增递减运算常用PHP运算类型介绍与应用.14(第第三三讲)常用常用PHPPHP运算类型介绍与应用运算类型介绍与应用PHP100视频教程1、算术运算理解为数学运算例: 5 * 6 - 12 2*(28+1) 注:算术运算遵循数学运算规则 从左到右,先算乘除后算加减,遇到括号先算括号内.15(第第三三讲)常用常用PHPPHP运算类型介绍与应用运算类型介绍与应用PHP100视频教程2、赋值运算把一个值写入一个变量例:$a=1;$a+=2;$a*=3; 注
12、:把右边的值赋予左的变量。.16(第第三三讲)常用常用PHPPHP运算类型介绍与应用运算类型介绍与应用PHP100视频教程3、比较运算用来确定两个数之间的关系例:1=23!=253ok=ok1=1 注:比较运算得到的值为布尔值.17(第第三三讲)常用常用PHPPHP运算类型介绍与应用运算类型介绍与应用PHP100视频教程4、逻辑运算先将比较的两边转换成布尔类型,再执行他们的关系例:1 & 10 & 11 | 11 | 0 注:逻辑运算得到的值为布尔值.18(第第三三讲)常用常用PHPPHP运算类型介绍与应用运算类型介绍与应用PHP100视频教程5、递增递减运算只操作变量的一种运算例:$a+$a
13、$a-$a 注:逻辑运算得到的值为布尔值.19PHP100视频教程还有什么疑问可以到还有什么疑问可以到提出提出 也可以以发送邮件到也可以以发送邮件到 (msn)感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 (第第三三讲讲)常用常用PHPPHP运算类型介绍与应用运算类型介绍与应用.20(第第四四讲)PHPPHP条件语句的介绍与应用条件语句的介绍与应用PHP100PHP100视频教程视频教程本讲大纲:演讲老师:张恩民 支持网站:1、if 条件语句2、switch 条件语句.21(第第四四讲)PHPPHP条件语句的介绍与应用条件语句的介绍与应用PHP100PHP100
14、视频教程视频教程1 1、if if 条件语句条件语句 程序中最常见的,大部分语言中都存在的一种条件语句,在开发中起着至关程序中最常见的,大部分语言中都存在的一种条件语句,在开发中起着至关重要的作用,格式如下:重要的作用,格式如下:ifif( (exprexpr) ) echo echo TRUETRUEelseelse echo echo FALSE FALSEifif( (exprexpr) ) echo echo TRUE TRUE elseelse echo echo FALSEFALSE ifif( (exprexpr) ) echo echo TRUETRUE elseifelsei
15、f(expr) (expr) echo echo CONCON elseelse echo echo FALSEFALSE if if elseelseif if elseifelseif.22(第第四四讲)PHPPHP条件语句的介绍与应用条件语句的介绍与应用PHP100PHP100视频教程视频教程1 1、switch switch 条件语句条件语句 在多个条件当中使用在多个条件当中使用Switch Switch 更加精巧,格式如下:更加精巧,格式如下:switch($i)case0:echo输出输出0;break;case1:echo输出输出1;break;case2:echo输出输出2;b
16、reak;if($i=0)echo输出输出0;elseif($i=1)echo输出输出1;elseif($i=2)echo输出输出2;相等相等.23PHP100PHP100视频教程视频教程还有什么疑问可以到 提出 也可以以发送邮件到 (msn)感谢收看本次教程!本次演讲老师:张恩民 QQ群号:1352110 (第四讲) PHP条件语句的介绍与应用.24(第第五五讲)PHPPHP循环语句的介绍与应用循环语句的介绍与应用PHP100PHP100视频教程视频教程本讲大纲:演讲老师:张恩民 支持网站:1、break n 循环控制语句2、dowhile 循环语句3、for 循环语句.25(第第五五讲)
17、PHPPHP循环语句的介绍与应用循环语句的介绍与应用PHP100PHP100视频教程视频教程1、break n 循环控制语句也可以理解为循环中断语句,跳出循环语句break;break n ;跳出一层循环跳出N条循环.26(第第五五讲)PHPPHP循环语句的介绍与应用循环语句的介绍与应用PHP100PHP100视频教程视频教程2、dowhile 循环语句dowhile(expr)while(expr)先执行一次循环再判断条件先判断条件执再行一次循环.27(第第五五讲)PHPPHP循环语句的介绍与应用循环语句的介绍与应用PHP100PHP100视频教程视频教程3、for 循环语句for 循环是
18、PHP 中最复杂的循环结构。它的行为和 C 语言的相似。for (expr1; expr2; expr3) for ($i = 1; $i 2,title=3);PHP中使用array来创建一个数组: array( key=value , key=value ).31(第第六六讲)PHPPHP数组的创建修改使用数组的创建修改使用PHP100PHP100视频教程视频教程1、创建 和 修改 数组用方括号的语法来修改数组 : $arr = value$arr = array(a = 视频, b=教程, c = 六);$arra = PHP100;$arrc = 第六讲;.32(第第六六讲)PHPPH
19、P数组的创建修改使用数组的创建修改使用PHP100PHP100视频教程视频教程2、数组与数组的函数使用 count 函数统计数组条数count ( $arr );is_array ( $arr );使用 is_array函数判断数组另一种创建数组的函数explodeexplode ( key , value);.33(第第六六讲)PHPPHP数组的创建修改使用数组的创建修改使用PHP100PHP100视频教程视频教程3、使用foreach 遍历数组遍历数组很多种方法,可以使用 For循环,while循环,最巧妙的一种遍历数组foreach给我们带来了跟多方便foreach ( $arr as
20、$key = $value ) .34PHP100PHP100视频教程视频教程还有什么疑问可以到 提出 也可以以发送邮件到 (msn)感谢收看本次教程!本次演讲老师:张恩民 QQ群号:1352110 (第六讲) PHP数组的创建修改使用.35(第第七七讲)PHPPHP函数和自定义函数函数和自定义函数PHP100PHP100视频教程视频教程本讲大纲:演讲老师:张恩民 支持网站:1、PHP函数介绍2、PHP如何自定义函数3、使用自定义函数实例操作.36(第第七七讲)PHPPHP函数和自定义函数函数和自定义函数PHP100PHP100视频教程视频教程1、PHP函数介绍PHP函数分为:系统内部函数
21、和 自定义函数 函数就是为了解决一些常见问题实现制作好的 “模”func(val1,val2,);格式date(Y-m-d)md5(php100)函数的优越性:控制程序设计的复杂性控制程序设计的复杂性提高软件的可靠性提高软件的可靠性提高软件的开发效率提高软件的开发效率提高软件的可维护性提高软件的可维护性提高程序的重用性提高程序的重用性例子.37(第第七七讲)PHPPHP函数和自定义函数函数和自定义函数PHP100PHP100视频教程视频教程2、PHP如何自定义函数使用 Function 来自定义一个函数:Function func_name($val)格式函数的命名跟自定义变量一样,只能使用
22、_, AZ, az一个自定义函数中的变量是局部的,函数外不生效使用global全局变量的时候,在函数外才可使用变量(不建议)为了放置全局变量的混乱可以使用 unset($var)删除一个变量.38(第第七七讲)PHPPHP函数和自定义函数函数和自定义函数PHP100PHP100视频教程视频教程3、使用自定义函数实例操作(1)使用return 函数返回函数内部值(2)自定义函数值的接收和选择性接收(3)function_exists() 判断函数是否存在(4)引用返回值 使用&符号.39PHP100PHP100视频教程视频教程还有什么疑问可以到 提出 也可以以发送邮件到 (msn)感谢收看本次
23、教程!本次演讲老师:张恩民 QQ群号:1352110 (第七讲) PHP函数和自定义函数.40(第第八八讲)Mysql Mysql 简介和创建新的数据库简介和创建新的数据库PHP100PHP100视频教程视频教程本讲大纲:演讲老师:张恩民 支持网站:1、MYSQL简介与概要2、访问MYSQL的几种途径3、介绍数据库中常用字段类型4、创建一个简单的数据库 (并学习5个数据库操作命令).41(第第八八讲)Mysql Mysql 简介和创建新的数据库简介和创建新的数据库PHP100PHP100视频教程视频教程1、MYSQL简介与概要MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL A
24、B公司,现在已经被Sun公司收购,支持FreeBSD、Linux、MAC、Windows等多种操作系统 与其他的大型数据库例如Oracle、DB2、SQL Server等相比功能稍弱一些1、可以处理拥有上千万条记录的大型数据2、支持常见的SQL语句规范3、可移植行高,安装简单小巧4、良好的运行效率,有丰富信息的网络支持5、调试、管理,优化简单(相对其他大型数据库)题外话:Postgresql 发展势头很猛.42(第第八八讲)Mysql Mysql 简介和创建新的数据库简介和创建新的数据库PHP100PHP100视频教程视频教程2、访问MYSQL的几种途径知识点:MYSQL默认使用的是3306端
25、口1、使用工具MYSQL官方的工具访问:MySQL Administrator tool 2、使用第三方工具访问:mysqlexec 、 mysql连接器 3、使用WEB方式访问:phpMyAdmin(最常见) 比较: 使用客户端工具操作效率高,安全性高 使用WEB方式简单方便,不受限制.43(第第八八讲)Mysql Mysql 简介和创建新的数据库简介和创建新的数据库PHP100PHP100视频教程视频教程3、介绍数据库中常用字段类型整数型:TINYINT,SMALLINT,INT,BIGINT小数型:FLOAT,DOUBLE,DECIMAL(M,D)字符型:CHAR,VARCHAR日期型:
26、DATETIME ,DATE,TIMESTAMP备注型:TINYTEXT ,TEXT ,LONGTEXT.44(第第八八讲)Mysql Mysql 简介和创建新的数据库简介和创建新的数据库PHP100PHP100视频教程视频教程4、创建一个简单的数据库CREATE TABLE test ( id int(10) NOT NULL auto_increment, uid varchar(10) NOT NULL default 0, regdate date NOT NULL, remark text NULL, PRIMARY KEY (id)创建一个数据库命令:CREATE TABLE修改一
27、个字段名称:RENAME TABLE 原字段 TO 新字段 ;删除一个数据库命令:DROP TABLE删除一个字段: ALTER TABLE 表 DROP 原字段插入一个字段: ALTER TABLE 表 ADD 新字段 AFTER 原字段.45PHP100PHP100视频教程视频教程还有什么疑问可以到 提出 也可以以发送邮件到 M感谢收看本次教程!本次演讲老师:张恩民 QQ群号:1352110 (第八讲) Mysql 简介和创建新的数据库.46(第第九九讲)数据库中的常用数据库中的常用SQLSQL语句语句PHP100PHP100视频教程视频教程本讲大纲:演讲老师:张恩民 支持网站:1、SEL
28、ECT 查询语句和条件语句2、排序,分组,指针查询,计算3、Insert 插入语句4、Update 更新语句 5、Delete 删除语句 .47(第第九九讲)数据库中的常用数据库中的常用SQLSQL语句语句PHP100PHP100视频教程视频教程练习表.48(第第九九讲)数据库中的常用数据库中的常用SQLSQL语句语句PHP100PHP100视频教程视频教程1、SELECT 查询语句和条件语句SELECT 查询字段 FROM 表名 WHERE 条件 查询字段:可以使用通配符* 、字段名、字段别名表名: 数据库.表名 ,表名常用条件: = 等于 、不等于、in 包含 、 not in 不包含、
29、like 匹配 BETWEEN 在范围 、 not BETWEEN 不在范围 条件运算: and 、 or 、 ( ) .49(第第九九讲)数据库中的常用数据库中的常用SQLSQL语句语句PHP100PHP100视频教程视频教程2、排序,分组,指针查询,计算分组语句:group by 字段排序语句:order by 字段,字段 ASC / DESC指针查询:limit 初始值,结束值计算: COUNT(*) 统计函数 MAX(*) 最大值函数 MIN (*) 最小值函数 AVG(*) 平均值函数 SUM(*) 累计值函数()语句最后语句最后 limit之前语句最后 order之前.50(第第九
30、九讲)数据库中的常用数据库中的常用SQLSQL语句语句PHP100PHP100视频教程视频教程3、Insert 插入语句insert into 表名 (字段,) values(值,)insert into 表名 values(值,)插入时须考虑清楚字段类型避免插入后出现缺值,乱码现象.51(第第九九讲)数据库中的常用数据库中的常用SQLSQL语句语句PHP100PHP100视频教程视频教程4、Update 更新语句 UPDATE 表名 SET 字段 = 值 WHERE 条件 limit 可省略常用条件: = 等于 、不等于、in 包含 、 not in 不包含、 like 匹配 BETWEEN
31、 在范围 、 not BETWEEN 不在范围条件预算: and 、 or 、 ( ) .52(第第九九讲)数据库中的常用数据库中的常用SQLSQL语句语句PHP100PHP100视频教程视频教程5、Delete 删除语句DELETE FROM 表名 WHERE 条件 limit 可省略常用条件: = 等于 、不等于、in 包含 、 not in 不包含、 like 匹配 BETWEEN 在范围 、 not BETWEEN 不在范围条件预算: and 、 or 、 ( ) .53PHP100PHP100视频教程视频教程还有什么疑问可以到 提出 也可以以发送邮件到 M感谢收看本次教程!本次演讲老
32、师:张恩民 QQ群号:1352110 (满) 、 3128945(第九讲) 数据库中的常用SQL语句.54(第第十十讲)MYSQLMYSQL在在PHP5PHP5中的应用中的应用PHP100PHP100视频教程视频教程本讲大纲:演讲老师:张恩民 支持网站:1、PHP与mysql建立链接2、如何去执行一个SQL语句3、两种查询函数array / row区别4、 其他常用Mysql函数介绍.55(第第十十讲)MYSQLMYSQL在在PHP5PHP5中的应用中的应用PHP100PHP100视频教程视频教程1、PHP与mysql建立链接php.ini 加载mysql组件: extension=php_m
33、ysql.dll 前的; 去掉 extension_dir = 路径是否正确PHP链接mysql函数mysql_connect(主机, 用户名, 密码)mysql_select_db(打开数据库,连接标识符);mysql_connect: 开启 MySQL 链接mysql_select_db: 打开一个数据库如果不特别声明连接标识符,则默认为是上一次打开的连接。 和 or die 隐藏错误 和 条件显示.56(第第十十讲)MYSQLMYSQL在在PHP5PHP5中的应用中的应用PHP100PHP100视频教程视频教程2、如何去执行一个SQL语句mysql_query (SQL语句 ,连接标识符
34、);说明:mysql_query用来根据连接标识符向该数据库服务器的当前数据库发送查询,如果连接标识符默认,则默认为是上一次打开的连接。返回值:成功后返回一个结果标识符,失败时返回false。$sql = SELECT * FROM test;$result = mysql_query($sql, $conn) or die(mysql_error();.57(第第十十讲)MYSQLMYSQL在在PHP5PHP5中的应用中的应用PHP100PHP100视频教程视频教程格式:mysql_fetch_row(result);说明:mysql_fetch_row用来查询结果的一行保存至数组,该数组下
35、标从0开始,每一个数组元素对应一个域。通过循环,可以将查询结果全部获得。格式:mysql_fetch_array(result);说明:mysql_fetch_array和mysql_fetch_row功能基本相同,只不过它除了可以用从0开始的偏移量作索引,还可以用域名作索引。值返回下一行的所有域值,并将其保存至一个数组中,没有行时返回false。3、两种查询函数array / row区别mysql_query(set names GBK); 解决中文乱码.58(第第十十讲)MYSQLMYSQL在在PHP5PHP5中的应用中的应用PHP100PHP100视频教程视频教程4、 其他常用Mysql
36、函数介绍mysql_num_rows 用于计算查询结果中所得行的数目mysql_insert_id 传回最后一次使用 INSERT 指令的 ID。mysql_tablename 取得数据库名称mysql_error 返回错误信息mysql_close 关闭 MySQL 链接.59PHP100PHP100视频教程视频教程还有什么疑问可以到 提出 也可以以发送邮件到 M感谢收看本次教程!本次演讲老师:张恩民 (第十讲) MYSQL在PHP5中的应用.60(第第1111讲)学习制作学习制作PHP+MYSQLPHP+MYSQL留言板(上)留言板(上)演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站
37、:1 1、设计一个完整程序的流程、设计一个完整程序的流程2 2、HTMLHTML部分表单标签的使用部分表单标签的使用3 3、PHPPHP里的页面相互调用里的页面相互调用4 4、PHPPHP接收参数的几种方式接收参数的几种方式实例开发留言板知识点实例开发留言板知识点PHP100视频教程视频教程.61(第第1111讲)学习制作学习制作PHP+MYSQLPHP+MYSQL留言板(上)留言板(上)PHP100视频教程视频教程1 1、设计一个程序的流程、设计一个程序的流程设计流程:设计流程:功能需要功能需要程序设计:程序设计:开始程序开始程序初始化初始化条件条件页面设计页面设计数据库设计数据库设计代码设
38、计代码设计调试发布调试发布代码操作代码操作.62(第第1111讲)学习制作学习制作PHP+MYSQLPHP+MYSQL留言板(上)留言板(上)PHP100视频教程视频教程2 2、HTMLHTML部分表单标签的使用部分表单标签的使用提交的提交的URLURL提交类型提交类型POST/GETPOST/GET类型类型大小大小该该inputinput名称名称多文本框名称多文本框名称.63(第第1111讲)学习制作学习制作PHP+MYSQLPHP+MYSQL留言板(上)留言板(上)PHP100视频教程视频教程3 3、PHPPHP里的页面相互调用里的页面相互调用require() 与 require_onc
39、e() 通常放在通常放在 PHP PHP 程序的最前面,程序的最前面,PHP PHP 程序在执行前,就会先读入程序在执行前,就会先读入 require require 所指定引入的文件,如果出现错误是致命的。所指定引入的文件,如果出现错误是致命的。include() 与 include_once() 可以放在可以放在 PHP PHP 程序的任何一个位置,程序的任何一个位置,PHP PHP 程序在执行到时,才会先读入程序在执行到时,才会先读入 include include 所指定引入的文件,如果出现错误将会提示。所指定引入的文件,如果出现错误将会提示。同一个文件只读取一次同一个文件只读取一次同
40、一个文件只读取一次同一个文件只读取一次require(con.php) ;include(con.php) ;.64(第第1111讲)学习制作学习制作PHP+MYSQLPHP+MYSQL留言板(上)留言板(上)PHP100视频教程视频教程4 4、PHPPHP接收参数的几种方式接收参数的几种方式PHP5PHP5在默认的情况下接收参数是需要使用在默认的情况下接收参数是需要使用$_GET$_GETvalue;value;$_POST$_POSTvalue;value;还可以在还可以在PHP.ini PHP.ini 文件中的文件中的 将将register_globalsregister_globals
41、 = Off = Off 改改register_globalsregister_globals = on = on可以直接使用,可以直接使用,$value$value的值的值不建议不建议尤其是对新手尤其是对新手.65(第第1111讲)学习制作学习制作PHP+MYSQLPHP+MYSQL留言板(上)留言板(上)PHP100视频教程视频教程实例操作我们的留言板实例操作我们的留言板 con.php con.php / /数据库配置数据库配置 add.phpadd.php / /操作文件操作文件 list.php list.php / /列表文件列表文件 .66(第第1111讲)学习制作学习制作PHP
42、+MYSQLPHP+MYSQL留言板(上)留言板(上)还还有什么疑有什么疑问问可以到可以到 提出提出也可以以也可以以发发送送邮邮件到件到 M M 感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 PHP100视频教程视频教程.67(第第1212讲)学习制作学习制作PHP+MYSQLPHP+MYSQL留言板(下)留言板(下)演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:1 1、提交提交表单表单JavascriptJavascript验证验证2 2、str_replacestr_replace替换函数替换函数3 3、htmlspecialchars htmls
43、pecialchars 格式化格式化htmlhtml4 4、md5md5加密函数加密函数5 5、COOKIE COOKIE 的使用和登陆的使用和登陆实例开发留言板知识点实例开发留言板知识点PHP100视频教程视频教程.68(第第1212讲)学习制作学习制作PHP+MYSQLPHP+MYSQL留言板(下)留言板(下)PHP100视频教程视频教程1 1、提交表单、提交表单JavascriptJavascript验证验证 执行标签执行标签执行函数执行函数JSJS自定义函数自定义函数function CheckPost()if (myform.user.value=)alert(请填写用户);myfo
44、rm.user.focus();return false;if (myform.title.value.length5)alert(标题不能少于5个字符);myform.title.focus();取得取得useruser值值取得取得titletitle长度长度.69(第第1212讲)学习制作学习制作PHP+MYSQLPHP+MYSQL留言板(下)留言板(下)PHP100视频教程视频教程2 2、str_replacestr_replace替换函数替换函数str_replacestr_replace( ( 被替换的值被替换的值,替换的值替换的值,被替换的内容被替换的内容) );function
45、htmtocode($content) $content = str_replace(n, , str_replace( , , $content); return $content;替换回车替换回车替换空格替换空格.70(第第1212讲)学习制作学习制作PHP+MYSQLPHP+MYSQL留言板(下)留言板(下)PHP100视频教程视频教程3 3、htmlspecialchars htmlspecialchars 格式化格式化htmlhtml4 4、md5md5加密函数加密函数主要功能是将主要功能是将HTMLHTML格式化,防止在输出格式化,防止在输出htmlhtml时被浏览器执
46、行时被浏览器执行htmlspecialchars(所要格式化对象,定义单双引号,编码)md5md5( ( 加密对象加密对象 ) )据说世界上公认比较安全的一种加密算法,但好像前些年被山东大学一名老师据说世界上公认比较安全的一种加密算法,但好像前些年被山东大学一名老师写出了解密运算公式!写出了解密运算公式!.71(第第1212讲)学习制作学习制作PHP+MYSQLPHP+MYSQL留言板(下)留言板(下)PHP100视频教程视频教程5 5、COOKIE COOKIE 的使用和登陆的使用和登陆setcookie(TEST, value, 3600, /dir, , true);cookie名 co
47、okie值保存时间cookie保存路径起效域名https发送注意:使用PHP cookie 当场不能生效,需要刷新一次.72(第第1212讲)学习制作学习制作PHP+MYSQLPHP+MYSQL留言板(下)留言板(下)PHP100视频教程视频教程.73(第第1212讲)学习制作学习制作PHP+MYSQLPHP+MYSQL留言板(下)留言板(下)还还有什么疑有什么疑问问可以到可以到 提出提出也可以以也可以以发发送送邮邮件到件到 M M 感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 PHP100视频教程视频教程.74(第第1313讲)PHP+MYSQLPHP+MY
48、SQL分页原理分页原理演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:1 1、SQLSQL语句中的语句中的limitlimit用法用法2 2、学习分页的一种公式、学习分页的一种公式3 3、parse_url()parse_url()解析解析URLURL函数函数4 4、$_SERVER$_SERVERREQUEST_URIREQUEST_URI本讲知识点本讲知识点PHP100视频教程视频教程.75(第第1313讲)PHP+MYSQLPHP+MYSQL分页原理分页原理PHP100视频教程视频教程1 1、SQLSQL语句中的语句中的limitlimit用法用法SELECT * FROM tab
49、le limit 开始位置 , 操作条数SELECT * FROM table limit 0 , 20SELECT * FROM table limit 10 , 20开始位置从开始位置从0 0开始开始取最前面取最前面2020条条1111条到条到2020条条.76(第第1313讲)PHP+MYSQLPHP+MYSQL分页原理分页原理PHP100视频教程视频教程2 2、学习分页的一种公式、学习分页的一种公式所谓分页显示,也就是讲数据库中的结果集,一段一段显示出来所谓分页显示,也就是讲数据库中的结果集,一段一段显示出来(1 1)分页原理)分页原理怎么分段,当前在第几段怎么分段,当前在第几段 (每
50、页有几条,当前再第几页每页有几条,当前再第几页)前前1010条记录:条记录:select * from table limit 0,10 select * from table limit 0,10 第第1111至至2020条记录:条记录:select * from table limit 10,10 select * from table limit 10,10 第第2121至至3030条记录:条记录:select * from table limit 20,10 select * from table limit 20,10 (2 2)需要的条件)需要的条件(当前页数(当前页数 - 1 -
51、 1 )X X 每页条数每页条数 , 每页条数每页条数Select * from table limit ($Page- 1) * $PageSize, $PageSize (3 3)得到公式)得到公式.77(第第1313讲)PHP+MYSQLPHP+MYSQL分页原理分页原理PHP100视频教程视频教程3 3、parse_url()parse_url()解析解析URLURL函数函数parse_url() parse_url() 是讲是讲URLURL解析成有固定键值的数组的函数解析成有固定键值的数组的函数$ua=parse_url(http:/username:passwordhostname
52、/path?arg=value#anchor);print_r($ua);结果:Array( scheme = http host = hostname user = username pass = password path = /path query = arg=value fragment = anchor).78(第第1313讲)PHP+MYSQLPHP+MYSQL分页原理分页原理PHP100视频教程视频教程.79(第第1313讲)PHP+MYSQLPHP+MYSQL分页原理分页原理还还有什么疑有什么疑问问可以到可以到 提出提出也可以以也可以以发发送送邮邮件到件到 M M 感谢收看本
53、次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 PHP100视频教程视频教程.80(第第1414讲)PHPPHP上传原理及应用上传原理及应用演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:1 1、FORMFORM标签标签enctypeenctype属性属性2 2、$_FILES $_FILES 系统函数系统函数3 3、move_uploaded_filemove_uploaded_file函数函数4 4、is_uploaded_file is_uploaded_file 函数函数本讲知识点本讲知识点PHP100视频教程视频教程.81(第第1414讲)PHPPHP上传原
54、理及应用上传原理及应用PHP100视频教程视频教程1 1、FORMFORM标签标签enctypeenctype属性属性表单中表单中enctype=multipart/form-data的意思,是设置表单的的意思,是设置表单的MIME编码。默认情况,编码。默认情况,这个编码格式是这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;,不能用于文件上传;只有使用了只有使用了multipart/form-data,才能完整的传递文件数据,才能完整的传递文件数据input标签 type 属性中的 file.82(第第1414讲)PHPPHP上传原理及应用上
55、传原理及应用PHP100视频教程视频教程2 2、$_FILES $_FILES 系统函数系统函数$_FILESmyFilename 客户端文件的原名称。$_FILESmyFiletype 文件的 MIME 类型,例如image/gif。$_FILESmyFilesize 已上传文件的大小,单位为字节。$_FILESmyFiletmp_name 储存的临时文件名,一般是系统默认。$_FILESmyFileerror 该文件上传相关的错误代码。image/jpgimage/jpegimage/pngimage/pjpegimage/gifimage/bmpimage/x-pngapplicatio
56、n/x-zip-compressed0; 文件上传成功。1; 超过了文件大小php.ini中。2; 超过了文件大小 MAX_FILE_SIZE 选项指定的值。3; 文件只有部分被上传。4; 没有文件被上传。5; 上传文件大小为0。.83(第第1414讲)PHPPHP上传原理及应用上传原理及应用PHP100视频教程视频教程3 3、move_uploaded_filemove_uploaded_file函数函数上传后移动文件到目标位置的函数move_uploaded_filemove_uploaded_file( (临时文件,目标位置和文件名临时文件,目标位置和文件名););4 4、is_uplo
57、aded_file is_uploaded_file 函数函数判断上传MIME类型的文件函数move_uploaded_filemove_uploaded_file(MIME);(MIME);.84(第第1414讲)PHPPHP上传原理及应用上传原理及应用PHP100视频教程视频教程.85(第第1414讲)PHPPHP上传原理及应用上传原理及应用还还有什么疑有什么疑问问可以到可以到 提出提出也可以以也可以以发发送送邮邮件到件到 M M 感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 PHP100视频教程视频教程.86(第第1515讲)PHPPHP生成生成HTML
58、HTML文件原理文件原理演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:1 1、PHPPHP部分部分文件操作函数文件操作函数( ( fopen fopen ,fread fread ,filesizefilesize,fwritefwrite,fclosefclose ) )2 2、unlink() rmdir() unlink() rmdir() 删除函数删除函数本讲知识点本讲知识点PHP100视频教程视频教程.87(第第1515讲)PHPPHP生成生成HTMLHTML文件原理文件原理PHP100视频教程视频教程1 1、PHPPHP部分文件操作函数部分文件操作函数(1) (1) fop
59、enfopen 打开文件函数打开文件函数 fopen (路径和文件名,打开方式);(2) (2) freadfread 读取文件内容读取文件内容 fread (打开的文件,结束位置);(3) (3) filesizefilesize 读取文件大小,字节为计量单位读取文件大小,字节为计量单位 filesize (路径和文件名);(4) (4) fwritefwrite 写入文件内容写入文件内容 fwrite (路径和文件名,写入的内容);(5) (5) fclosefclose 关闭打开的文件关闭打开的文件 fclose (路径和文件名);R-只读 W-写入 A-读写字节为单位.88(第第151
60、5讲)PHPPHP生成生成HTMLHTML文件原理文件原理PHP100视频教程视频教程2 2、unlink() mkdir() unlink() mkdir() 删除函数删除函数unlink() 删除文件函数 rmdir() 删除目录函数 unlink(路径和文件名)rmdir(路径和目录名)用到的其他知识点:用到的其他知识点: 数组,循环,替换函数(可参考前面的教程)数组,循环,替换函数(可参考前面的教程).89(第第1515讲)PHPPHP生成生成HTMLHTML文件原理文件原理PHP100视频教程视频教程.90(第第1515讲)PHPPHP生成生成HTMLHTML文件原理文件原理还还有什
61、么疑有什么疑问问可以到可以到 提出提出也可以以也可以以发发送送邮邮件到件到 M M 感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 PHP100视频教程视频教程.91(第第1616讲)PHPPHP小偷程序原理和实例小偷程序原理和实例演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:1 1、初识正则表达式、初识正则表达式2 2、正则表达式函数、正则表达式函数 ereg() eregi() ereg() eregi()3 3、file_get_contents file_get_contents 读取整个文件函数读取整个文件函数4 4、写一个天气预报小偷的程序、
62、写一个天气预报小偷的程序本讲知识点本讲知识点PHP100视频教程视频教程.92(第第1616讲)PHPPHP小偷程序原理和实例小偷程序原理和实例PHP100视频教程视频教程1 1、初识正则表达式、初识正则表达式用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、匹配、查找及替换操作。、匹配、查找及替换操作。(a-zA-Z0-9_-)+(a-zA-Z0-9_-)+(.a-zA-Z0-9_-)+(.*)( ) 开始和结束位置 . 匹配除换行符*匹配1个或多个任意字符.93(第第1616讲)PHPPHP小偷程序原理
63、和实例小偷程序原理和实例PHP100视频教程视频教程2 2、正则表达式函数、正则表达式函数 ereg() eregi() ereg() eregi()ereg(正则表达式, 内容, 返回的数组); 若省略参数若省略参数返回的数组返回的数组,找到,找到则则返回返回值为值为T True 否则否则 返回返回 FalseFalseif (ereg(a-zA-Z0-9_-)+(a-zA-Z0-9_-)+(.a-zA-Z0-9_-)+,$email) echo 您的 E-Mail 通过初步检查;ereg()有区分大小写有区分大小写, ,eregi() 无无区分大小写。区分大小写。3 3、file_get_
64、contents file_get_contents 读取整个文件函数读取整个文件函数$rf = fopen (doc.txt,r );fread ($rf ,filesize (doc.txt); 等价于等价于$rf = fopen (doc.txt,r );file_get_contents($rf); .94(第第1616讲)PHPPHP小偷程序原理和实例小偷程序原理和实例PHP100视频教程视频教程写一个天气预报小偷的程序写一个天气预报小偷的程序.95(第第1616讲)PHPPHP小偷程序原理和实例小偷程序原理和实例还还有什么疑有什么疑问问可以到可以到 提出提出也可以以也可以以发发送
65、送邮邮件到件到 M M 感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 PHP100视频教程视频教程.96(第第1717讲)PHPPHP面向对象开发的学习(一)面向对象开发的学习(一)演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:1 1、什么是面向对象,什么是类、什么是面向对象,什么是类2 2、使用、使用CLASSCLASS创建一个类创建一个类3 3、类的成员属性和成员方法、类的成员属性和成员方法4 4、使用、使用newnew函数对象实例化函数对象实例化本讲知识点本讲知识点PHP100视频教程视频教程.97(第第1717讲)PHPPHP面向对象开发的学习(
66、一)面向对象开发的学习(一)PHP100视频教程视频教程1 1、什么是面向对象、什么是面向对象起初,“面向对象”是专指在程序设计中采用封装、继承、抽象等设计方法。可是,这个定义显然不能再适合现在情况。面向对象的思想已经涉及到软件开发的各个方面。如,面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)、以及我们经常说的面向对象的编程实现以及我们经常说的面向对象的编程实现(OOP,ObjectOrientedProgram)。)。传统开发方法存在问题传统开发方法存在问题1.软件重用性差 ,2.软件可维护性
67、差,3.无很好的扩展性面向对象的要素面向对象的要素1. 抽象性 , 2. 封装性 ,3.共享性 ,4. 强调对象结构而不是程序结构面向对象的三大特点(封装,继承,多态)缺一不可面向对象的三大特点(封装,继承,多态)缺一不可.98(第第1717讲)PHPPHP面向对象开发的学习(一)面向对象开发的学习(一)PHP100视频教程视频教程PC对象属性:电脑方法:我们理解成提高的功能,看电影,玩游戏,编程,上网什么是类什么是类我们可以理解成一个功能集合菜单,我们通过类来实现生成我们的方法类:显示器键盘主机.99(第第1717讲)PHPPHP面向对象开发的学习(一)面向对象开发的学习(一)PHP100视
68、频教程视频教程2 2、使用、使用CLASSCLASS创建一个类创建一个类class 方法名 成员属性成员属性成员方法成员方法class MyPcpublic $name;var $price; function vod() return PHP100视频教程; 3 3、类的成员属性和成员方法、类的成员属性和成员方法.100(第第1717讲)PHPPHP面向对象开发的学习(一)面向对象开发的学习(一)PHP100视频教程视频教程4 4、使用、使用newnew函数对象实例化函数对象实例化class MyPcpublic $name;var $price; function vod() return
69、 PHP100视频教程; $pc1 = new MyPc();$pc1-name;new 对象名( 参数 )例:使用使用 - - 访问对象内容访问对象内容.101(第第1717讲)PHPPHP面向对象开发的学习(一)面向对象开发的学习(一)还还有什么疑有什么疑问问可以到可以到 提出提出也可以以也可以以发发送送邮邮件到件到 M M 感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 PHP100视频教程视频教程.102(第第1818讲)PHPPHP面向对象开发的学习(二)面向对象开发的学习(二)演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:1 1、创建一个和多
70、个对象、创建一个和多个对象2 2、对象中的、对象中的$this$this关键字关键字3 3、初始化对象、初始化对象 _ _construct()construct()4 4、析构函数、析构函数 _destruct()destruct()本讲知识点本讲知识点PHP100视频教程视频教程.103(第第1818讲)PHPPHP面向对象开发的学习(二)面向对象开发的学习(二)PHP100视频教程视频教程1 1、创建一个和多个对象、创建一个和多个对象创建一个和多个对象我们只需要多次使用 new 函数 ,进行对类的实例化class MyPc public $name; public $price; fun
71、ction vod() return PHP100视频教程; 为了让大家养成良好的习惯和今后对为了让大家养成良好的习惯和今后对PHP6PHP6的适应,建议使用的适应,建议使用 publicpublic 而不是而不是 var var$pc1 = new MyPc();$pc2 = new MyPc();$pc3 = new MyPc();类对象.104(第第1818讲)PHPPHP面向对象开发的学习(二)面向对象开发的学习(二)PHP100视频教程视频教程2 2、对象中的、对象中的$this$this关键字关键字$this关键字是用来访问当前对象中的对象属性和对象方法的系统变量class MyP
72、c public $name; public $price; function vod() $this-name; $this-vod() ; 我们可以理解为$this是在对象中特殊的一种使用构造函数和变量的方法$this仅能在当前对象中使用.105(第第1818讲)PHPPHP面向对象开发的学习(二)面向对象开发的学习(二)PHP100视频教程视频教程3 3、初始化对象、初始化对象 _construct() _construct()我们在创建一个类有时候需要初始化一些操作,这个时候我们需要使用初始化函数,在PHP5中有两种初始化方法:1、原PHP4中我们需要建立一个与类名称相同的一个对象方法
73、:class MyPc function MyPC ( ) 初始化操作 2、在PHP5中继承了PHP4但为了更好的针对面向对象开发有了固定函数:class MyPc function _construct() 初始化操作 相等.106(第第1818讲)PHPPHP面向对象开发的学习(二)面向对象开发的学习(二)PHP100视频教程视频教程4 4、析构函数、析构函数 _destruct() _destruct()能够在对象释放时自动被调用的方法被称为析构函数能够在对象释放时自动被调用的方法被称为析构函数PHP4支持析构函数,通过登录在PHP运行终止时用register_shutdown_func
74、tion()调用的函数,只有类似的实行方法。PHP5正式支持析构函数,能够在类中指定对象释放时的动作。 我们可以理解为垃圾回收机制我们可以理解为垃圾回收机制当对象内部的操作执行完毕的时候,_destruct()被调用,然后对象所使用的内存被释放出来。 class MyPc function _destruct() 规则规则:后进先出:后进先出.107(第第1818讲)PHPPHP面向对象开发的学习(二)面向对象开发的学习(二)还还有什么疑有什么疑问问可以到可以到 提出提出也可以以也可以以发发送送邮邮件到件到 M M 感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民
75、 PHP100视频教程视频教程.108(第第1919讲)PHPPHP面向对象开发的学习(三)面向对象开发的学习(三)演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:封装封装 关关 键字键字 :publicpublic,protectedprotected,privateprivate封装封装相关相关函数:函数:_set() , _get()_set() , _get()类的封装和应用类的封装和应用PHP100视频教程视频教程.109(第第1919讲)PHPPHP面向对象开发的学习(三)面向对象开发的学习(三)PHP100视频教程视频教程封装关键字封装关键字PublicProtectedP
76、rivate全局全局XX继承类继承类X本类本类public 表示全局,类内部外部子类都可以访问;protected表示受保护的,只有本类或子类或父类中可以访问;private表示私有的,只有本类内部可以使用;封装是把一些相关的属性和行封装是把一些相关的属性和行为隐为隐藏起来藏起来,从而得到保护和安全,从而得到保护和安全.110(第第1919讲)PHPPHP面向对象开发的学习(三)面向对象开发的学习(三)PHP100视频教程视频教程class MyPc public $name; protected $price; private function vod() $this-name; 全局属性任
77、何位置都可以引用保护属性只有本类或子类或父类中可以访问私有属性只有本类内部可以使用;.111(第第1919讲)PHPPHP面向对象开发的学习(三)面向对象开发的学习(三)PHP100视频教程视频教程封装相关函数:封装相关函数:_set() , _get()_set() , _get()某些特定操作的时候需要访问和赋值封装的类型,这个时候我们就需要其他的函数帮我们完成这些操作,PHP为我们提供了个方法名:_set() , _get()_set() , _get()_set($Name,$Value)_set() _set() 取得当前类中封装过私有属性或者方法重新执行或赋值操作取得当前类中封装过
78、私有属性或者方法重新执行或赋值操作_get()_get() _get() 取得当前类中封装过属性或方法并转换成共有属性取得当前类中封装过属性或方法并转换成共有属性.112(第第1919讲)PHPPHP面向对象开发的学习(三)面向对象开发的学习(三)PHP100视频教程视频教程还还有什么疑有什么疑问问可以到可以到 提出提出也可以以也可以以发发送送邮邮件到件到 M M 感谢收看本次教程!感谢收看本次教程!.113(第第2020讲)PHPPHP面向对象开发的学习(四)面向对象开发的学习(四)演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:1 1、继承关键字、继承关键字 :extendsext
79、ends2 2、PHPPHP继承的规则继承的规则3 3、基类方法重载和父类方法访问、基类方法重载和父类方法访问类的继承和应用类的继承和应用PHP100视频教程视频教程.114(第第2020讲)PHPPHP面向对象开发的学习(四)面向对象开发的学习(四)PHP100视频教程视频教程1 1、继承关键字、继承关键字 :extendsextendsPHP类的继承,我们可以理解成共享被继承类的内容。PHP中使用extendsextends单一继承的方法,请切忌!(非C+多继承)被继承的类我们叫做父类(基类)继承者成为子类(派生类)CLASS1CLASS2CLASS3extendsextends依次被继承
80、,class3拥有class1、class2所以功能和属性,避免方法和属性重名避免方法和属性重名class MyPcclass home extends MyPcextends2 2、PHPPHP继承的规则继承的规则.115(第第2020讲)PHPPHP面向对象开发的学习(四)面向对象开发的学习(四)PHP100视频教程视频教程3 3、基类方法重载和父类方法访问、基类方法重载和父类方法访问基类派生类因为属于向下继承的原理,基类不能使用派生类里内容,这个时基类的一些方法不能完成我们的一些派生类的功能,我们就可以进行方法重载避免了,新建方法带来的混乱。方法重载我们也可以理解方法覆盖,在派生类里使用
81、与基类方法重名的方法名称执行重载重载时我们需要调用原始基类内容,再增加新内容,我们可以使用基类名基类名 : 方法名称方法名称.116(第第2020讲)PHPPHP面向对象开发的学习(四)面向对象开发的学习(四)PHP100视频教程视频教程还还有什么疑有什么疑问问可以到可以到 提出提出也可以以也可以以发发送送邮邮件到件到 M M 感谢收看本次教程!感谢收看本次教程!.117(第第2121讲)PHPPHP面向对象开发的学习(五)面向对象开发的学习(五)演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:1 1、抽象关键字、抽象关键字 :abstractabstract2 2、抽象方法和抽象类的
82、定义、抽象方法和抽象类的定义3 3、抽象类和方法使用规则、抽象类和方法使用规则类的抽象方法和类类的抽象方法和类PHP100视频教程视频教程.118(第第2121讲)PHPPHP面向对象开发的学习(五)面向对象开发的学习(五)PHP100视频教程视频教程1 1、抽象关键字、抽象关键字 :abstractabstract抽象就是无法确切的说明,但又有一定的概念或者名称,在PHP中声明一个抽象类或者方法我们需要使用adstract关键字2 2、抽象方法和抽象类的定义、抽象方法和抽象类的定义一个类中至少有一个方法是抽象的,我们称之为抽象类。所以如果定义抽象类首先定义抽象方法。abstract clas
83、s class1 abstract function fun1();1、类中至少有一个抽象方法2、抽象方法不允许有 3、抽象方法前面必须要加abstract.119(第第2121讲)PHPPHP面向对象开发的学习(五)面向对象开发的学习(五)PHP100视频教程视频教程3 3、抽象类和方法使用规则、抽象类和方法使用规则抽象类的几个特点: 1、不能被实例化,只能被继承 2、继承的派生类当中要把所以抽象方法重载才能实例化abstract class cl1 abstract function fun1();class cl2 extends cl1 function fun1() 继承重载所有抽象
84、方法不可实例化不可实例化可实例化可实例化.120(第第2121讲)PHPPHP面向对象开发的学习(五)面向对象开发的学习(五)PHP100视频教程视频教程还还有什么疑有什么疑问问可以到可以到 提出提出也可以以也可以以发发送送邮邮件到件到 M M 感谢收看本次教程!感谢收看本次教程!.121(第第2222讲)PHPPHP面向对象开发的学习(六)面向对象开发的学习(六)演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:1 1、关键字、关键字 :finalfinal2 2、关键字、关键字 : selfself3 3、关键字、关键字 :staticstatic4 4、关键字、关键字 :const
85、const类中常用关键字类中常用关键字PHP100视频教程视频教程.122(第第2222讲)PHPPHP面向对象开发的学习(六)面向对象开发的学习(六)PHP100视频教程视频教程1 1、关键字、关键字 :finalfinal 用来定义类和方法的一个重要关键字,当定义类的时候该类将不能被继承,当用来定义方法的时候该方法将不能被重载final class class1 final function fun1() 该类将不能被继承该方法将不能被重载.123(第第2222讲)PHPPHP面向对象开发的学习(六)面向对象开发的学习(六)PHP100视频教程视频教程2 2、关键字、关键字 : selfs
86、elf 用来用类访问当前类中的内容的关键字,类似与$this关键字,但$this是需要类实例化以后才可以使用,self 可以直接访问当前类中的内部成员self : 类内部成员(属性或者方法)类名 : 类内部成员(属性或者方法)等价于注意:因为没有实例化类访问内部属性或者方法是没有意义的, 所以self一般用来访问类中的:静态成员,常量,或者其他定义内容.124(第第2222讲)PHPPHP面向对象开发的学习(六)面向对象开发的学习(六)PHP100视频教程视频教程3 3、关键字、关键字 :staticstatic 用来定义类的静态属性或方法,可以在类未被实例化时使用,静态属性单独占用内存而不会
87、因创建多个对象时而导致同样的方法或者属性重复占用。class class1 static static $name; staticstatic function fun1() 类名称 : 静态成员类名称 : : 静态成员 self : : 静态成员静态成员的访问静态方法内部禁止出现非静态内容类内部访问静态成员类外部访问静态成员.125(第第2222讲)PHPPHP面向对象开发的学习(六)面向对象开发的学习(六)PHP100视频教程视频教程4 4、关键字、关键字 :constconst 用来定义类中的常量,类似PHP外部定义常量的关键字define(); Const只能修饰类当中的成员属性!cl
88、ass class1 constconst NAME; function fun1() 注意事项:1、建议大写常量2、常量不使用$符号.126(第第2222讲)PHPPHP面向对象开发的学习(六)面向对象开发的学习(六)PHP100视频教程视频教程还还有什么疑有什么疑问问可以到可以到 提出提出也可以以也可以以发发送送邮邮件到件到 M M 感谢收看本次教程!感谢收看本次教程!.127(第第2323讲)PHPPHP面向对象开发的学习(七)面向对象开发的学习(七)演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:1 1、接口的介绍与创建、接口的介绍与创建 关键字关键字 :interfacein
89、terface2 2、接口的引用与规范、接口的引用与规范 关键字关键字 :implementsimplements类中接口的应用类中接口的应用PHP100视频教程视频教程.128(第第2323讲)PHPPHP面向对象开发的学习(七)面向对象开发的学习(七)PHP100视频教程视频教程1 1、接口的介绍与创建、接口的介绍与创建接口:一种成员属性全部为抽象的特殊抽象类,在程序中同为规范的作用接口:一种成员属性全部为抽象的特殊抽象类,在程序中同为规范的作用1、类中全部为抽象方法2、抽象方法前不用不用加abstract3、接口抽象方法属性为public4、成员属性必须为常量1、类中至少有一个抽象方法2
90、、抽象方法前需加abstract抽象类接口区别共同点:1 1、本身都不能被实例化,必须被继承或者引用、本身都不能被实例化,必须被继承或者引用2 2、继承或者引用后,需要把所有抽象方法重载方可使用、继承或者引用后,需要把所有抽象方法重载方可使用.129(第第2323讲)PHPPHP面向对象开发的学习(七)面向对象开发的学习(七)PHP100视频教程视频教程1 1、接口的介绍与创建、接口的介绍与创建接口有自己的创建关键字:interface interface 与普通类的创建类似interface demo const NAME=名字; function Fun1(); function Fun2
91、();声明接口类对象属性必须为常量对象方法全部为抽象方法,前面无须加adstract.130(第第2323讲)PHPPHP面向对象开发的学习(七)面向对象开发的学习(七)PHP100视频教程视频教程2 2、接口的引用与规范、接口的引用与规范 接口引用区别与之前我们的学的类继承关键字 extends,继承只能是单一性,而接口可以使用关键字:implements implements 多个引用并用逗号 , 分开.1、普通类引用接口例子: class mypc implements demo , demo2 , demo3 2、抽象类引用接口例子: abstract class mypc imple
92、ments demo , demo2 , demo3 设已有接口设已有接口 demo , demo2 , demo3 demo , demo2 , demo3.131(第第2323讲)PHPPHP面向对象开发的学习(七)面向对象开发的学习(七)PHP100视频教程视频教程2 2、接口的引用与规范、接口的引用与规范3、继承父类引用接口并存例子: class mypc extends root implements demo , demo2 , demo3 4、接口与接口继承: interface demo3 extends demo 设已有接口设已有接口 demo , demo2 , demo3
93、 demo , demo2 , demo3 父类父类 root root先先继承继承后后接口,接口,单单继承继承多多接口接口.132(第第2323讲)PHPPHP面向对象开发的学习(七)面向对象开发的学习(七)PHP100视频教程视频教程还还有什么疑有什么疑问问可以到可以到 提出提出也可以以也可以以发发送送邮邮件到件到 M M 感谢收看本次教程!感谢收看本次教程!.133(第第2424讲)PHPPHP面向对象开发的学习(八)面向对象开发的学习(八)演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:1 1、多态的介绍与优势、多态的介绍与优势2 2、运算符运算符 :instanceofins
94、tanceof3 3、多态的简单应用、多态的简单应用类中多态的应用类中多态的应用PHP100视频教程视频教程.134(第第2424讲)PHPPHP面向对象开发的学习(八)面向对象开发的学习(八)PHP100视频教程视频教程1 1、多态的介绍与优势、多态的介绍与优势 多态性是继抽象和继承后,面向对象语言的第三个特征。从字面上理多态性是继抽象和继承后,面向对象语言的第三个特征。从字面上理解,多态的意思是解,多态的意思是“多种形态多种形态”,简单来说,多态是具有表现多种形态的,简单来说,多态是具有表现多种形态的能力的特征,在能力的特征,在OOOO中是指中是指“语言具有根据对象的类型以不同方式处理。语
95、言具有根据对象的类型以不同方式处理。 OOP OOP的模式并不仅仅是把很多函数和功能集合起来,目的而是使用类,的模式并不仅仅是把很多函数和功能集合起来,目的而是使用类,继承,多态的方式描述我们生活中的一种情况。从而使得我们的代码更具继承,多态的方式描述我们生活中的一种情况。从而使得我们的代码更具有有“物物”的意义。帮助我们减少一些重复性的代码和条件语句的判断。的意义。帮助我们减少一些重复性的代码和条件语句的判断。介绍介绍优势优势.135(第第2424讲)PHPPHP面向对象开发的学习(八)面向对象开发的学习(八)PHP100视频教程视频教程2 2、运算符、运算符 :instanceofinst
96、anceofPHP 一个类型运算符。instanceof 用来测定一个给定的对象是否来自指定的对象类。class A class B $thing = new A;if ($thing instanceof A) echo A;if ($thing instanceof B) echo B;.136(第第2424讲)PHPPHP面向对象开发的学习(八)面向对象开发的学习(八)PHP100视频教程视频教程.137(第第2424讲)PHPPHP面向对象开发的学习(八)面向对象开发的学习(八)PHP100视频教程视频教程还还有什么疑有什么疑问问可以到可以到 提出提出也可以以也可以以发发送送邮邮件到
97、件到 M M 感谢收看本次教程!感谢收看本次教程!.138(第第2525讲)PHPPHP面向对象开发的学习(九)面向对象开发的学习(九)演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:1 1、对象描述的配置、对象描述的配置2 2、对象方法的异常处理、对象方法的异常处理3 3、克隆对象的应用、克隆对象的应用4 4、自动载入对象的方法、自动载入对象的方法总结篇总结篇PHP100视频教程视频教程.139(第第2525讲)PHPPHP面向对象开发的学习(九)面向对象开发的学习(九)PHP100视频教程视频教程1 1、对象描述的配置、对象描述的配置 我们可以直接打印对象句柄,从而获得该方法的基本信
98、息或其他内容。class Myfunction _tostring ( ) echo 我所要显示的内容; 方法名 _tostring()$p = new My();echo $p;输出结果:我所要显示的内容.140(第第2525讲)PHPPHP面向对象开发的学习(九)面向对象开发的学习(九)PHP100视频教程视频教程2 2、对象方法的异常处理、对象方法的异常处理 调用一些不存在的对象方法的异常处理,使程序继续正常运行。class Myfunction _call($n,$v) echo 错误的方法名.$n; echo 错误的参数.Print_r($v); 方法名 _call($funname
99、,$arr_value)因为参数会有多个所要用数组的方式保存,打印的时候也要就用print_r 输出.141(第第2525讲)PHPPHP面向对象开发的学习(九)面向对象开发的学习(九)PHP100视频教程视频教程3 3、克隆对象的应用、克隆对象的应用 通过克隆的方式我们可以在内存中生成两个一样的对象或升级原对象。class Myfunction _clone( ) echo 克隆时自动调用的函数; 方法名 _clone() 关键字 clone$a=new My()$b=$a; $a=new My()$b= clone $a; 内存中只有一个对象内存中会有两个对象.142(第第2525讲)PH
100、PPHP面向对象开发的学习(九)面向对象开发的学习(九)PHP100视频教程视频教程4 4、自动载入对象的方法、自动载入对象的方法 快速取得对象名称并自动载入进当前页面function _autoload($class_n) include($class_n.php); $p=new Mypc(); $d=new demo();方法名 _autoload()将会被自动调用,执行如下include(mypc.php);include(demo.php);该方法是在类以外单独的方法也就是我们所谓的构造函数.143(第第2525讲)PHPPHP面向对象开发的学习(九)面向对象开发的学习(九)PHP1
101、00视频教程视频教程还还有什么疑有什么疑问问可以到可以到 提出提出也可以以也可以以发发送送邮邮件到件到 M M 感谢收看本次教程!感谢收看本次教程!.144(第第2626讲)制作自己的制作自己的PHP+MYSQLPHP+MYSQL的类的类PHP100视频教程演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:学习目标学习目标1 1、巩固学习常用、巩固学习常用MYSQLMYSQL函数函数2 2、使用类封装常用、使用类封装常用SQLSQL操作,简化代码操作,简化代码3 3、认识面向对象在开发中的重要作用、认识面向对象在开发中的重要作用.145(第第2626讲)制作自己的制作自己的PHP+MYS
102、QLPHP+MYSQL的类的类PHP100视频教程用到的知识:1、private 私有属性关键字2、_construct 初始化方法名3、常用mysql函数4、常用SQL语句.146(第第2626讲)制作自己的制作自己的PHP+MYSQLPHP+MYSQL的类的类PHP100视频教程还还有什么疑有什么疑问问可以到可以到 也可以以也可以以发发送送邮邮件到件到感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 .147(第第2727讲)PHPPHP模板引擎模板引擎SmartySmarty入门使用入门使用PHP100PHP100视频教程视频教程演讲老师:张恩民演讲老师:张恩
103、民 支持网站:支持网站:学习目标学习目标1 1、SmartySmarty介绍及应用的优缺点介绍及应用的优缺点2 2、SmartySmarty的配置的配置 3 3、SmartySmarty的应用:变量,循环的应用:变量,循环.148(第第2727讲)PHPPHP模板引擎模板引擎SmartySmarty入门使用入门使用PHP100视频教程1 1、SmartySmarty介绍及应用的优缺点介绍及应用的优缺点什么是什么是smarty? S Smarty是一个使用是一个使用PHP写出来的写出来的PHP模板引擎模板引擎,目的是要使用目的是要使用PHP程序程序同同美工美工分离分离,使的程序使的程序员员改改变
104、变程序的程序的逻辑逻辑内容内容时时不会影响到美工的不会影响到美工的页页面面设计设计,美工重新修改,美工重新修改页页面面时时不会影响到程序的程序不会影响到程序的程序逻辑逻辑, ,这这在多人合作的在多人合作的项项目中目中显显的尤的尤为为重要。重要。(也易于程序的多样式开发)(也易于程序的多样式开发)S Smarty优优点点 1.速度速度快:相对其他模板引擎。快:相对其他模板引擎。 2. 2. 编译型:采用编译型:采用smartysmarty编写的程序在运行时要编译成一个非模板技术的编写的程序在运行时要编译成一个非模板技术的PHPPHP文件文件 3 3 缓存技术:它可以将用户最终看到的缓存技术:它可
105、以将用户最终看到的HTMLHTML文件缓存成一个静态的文件缓存成一个静态的HTMLHTML页页 4. 4. 插件技术:插件技术:smartysmarty可以自定义插件。可以自定义插件。不适合使用不适合使用smarty的地方的地方 1.需要需要实时实时更新的内容。例如像股票更新的内容。例如像股票显显示,它需要示,它需要经经常常对对数据数据进进行更新行更新 2. 2. 小项目。小项目因为项目简单而美工与程序员兼于一人的项目小项目。小项目因为项目简单而美工与程序员兼于一人的项目PHP100PHP100视频教程视频教程.149(第第2727讲)PHPPHP模板引擎模板引擎SmartySmarty入门使
106、用入门使用PHP100视频教程2 2、SmartySmarty的配置的配置 include_once(Smarty/Smarty.class.php);/包含包含smarty类文件类文件$smarty=newSmarty();/建立建立smarty实例对象实例对象$smarty$smarty-config_dir=Smarty/Config_File.class.php;/目录变量目录变量$smarty-caching=false;/是否使用缓存,项目在调试期间,不建议启用缓存是否使用缓存,项目在调试期间,不建议启用缓存$smarty-template_dir=./templates;/设置模
107、板目录设置模板目录$smarty-compile_dir=./templates_c;/设置编译目录设置编译目录$smarty-cache_dir=./smarty_cache;/缓存文件夹缓存文件夹/-/左右边界符,默认为左右边界符,默认为,但实际应用当中容易与,但实际应用当中容易与JavaScript相冲突相冲突/-$smarty-left_delimiter=;$smarty-right_delimiter=;Smarty_inc.php_inc.php.150(第第2727讲)PHPPHP模板引擎模板引擎SmartySmarty入门使用入门使用PHP100视频教程3 3、SmartyS
108、marty的应用:变量,循环的应用:变量,循环$smarty-assign(name, PHP100中文站); /进行模板变量替换$smarty-display(index.htm); / 该文件就是模板文件,应该在模板目录下$nameindex.htmindex.php引入我们配置的引入我们配置的Smarty_inc.php_inc.php$smarty-assign(模板变量, 值(数组/变量);$smarty-display(模板名称); PHP100PHP100视频教程视频教程.151(第第2727讲)PHPPHP模板引擎模板引擎SmartySmarty入门使用入门使用PHP100视频
109、教程3 3、SmartySmarty的应用:变量,循环的应用:变量,循环$smarty-assign(模板变量, 数组);数组是最常用的方式,可以帮助我们循环列表,和快速访问打理数据,如果要循环数组我们可以使用Smarty内置的方法sectionsection name=s loop=$stu$stus.namesectionelse 无内容/sectionPHP100PHP100视频教程视频教程.152(第第2727讲)PHPPHP模板引擎模板引擎SmartySmarty入门使用入门使用PHP100视频教程还还有什么疑有什么疑问问可以到可以到 也可以以也可以以发发送送邮邮件到件到感谢收看本次
110、教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 PHP100PHP100视频教程视频教程.153(第第2828讲)PHPPHP模板引擎模板引擎SmartySmarty的变量操作符的变量操作符PHP100PHP100视频教程视频教程演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:学习目标学习目标1 1、什么是、什么是SmartySmarty变量操作符?变量操作符?2 2、如何使用、如何使用SmartySmarty变量操作符变量操作符3 3、介绍常用的、介绍常用的2020个变量符个变量符.154(第第2828讲)PHPPHP模板引擎模板引擎SmartySmarty的变量操作
111、符的变量操作符PHP100PHP100视频教程视频教程1 1、什么是、什么是SmartySmarty变量操作符?变量操作符?php模板引擎smarty内置的一些操作函数,我们称之为变量操作符变量操作符,变量操作符可用于操作变量,自定义函数和字符。(跟我PHP中常用的PHP内部函数类似)他可以帮助我们完成很多比较实用的功能,如:首字母大写,拆分,替换,截取 更像是我们提前写好的一些PHP常用类.2 2、如何使用、如何使用SmartySmarty变量操作符变量操作符语法中使用|应用变量操作符,多个参数用: 分隔开来例子:$name|truncate:10:.截取前十个字符多则用.代替.155(第第
112、2828讲)PHPPHP模板引擎模板引擎SmartySmarty的变量操作符的变量操作符PHP100PHP100视频教程视频教程3 3、介绍常用的、介绍常用的2020个常用变量符个常用变量符capitalize 首字母大写 count_characters 计算字符数 cat 连接字符串 count_paragraphs 计算段落数count_sentences 计算句数count_words 计算词数date_format 时间格式default 默认escape 转码indent缩进lower小写 nl2br换行符替换成regex_replace正则替换replace替换spacify插空
113、string_format字符串格式化strip去除(多余空格)strip_tags去除html标签truncate截取upper大写wordwrap行宽约束$name|capitalize .156(第第2828讲)PHPPHP模板引擎模板引擎SmartySmarty的变量操作符的变量操作符PHP100视频教程还还有什么疑有什么疑问问可以到可以到 也可以以也可以以发发送送邮邮件到件到感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 PHP100PHP100视频教程视频教程.157(第第2929讲)PHPPHP模板引擎模板引擎SmartySmarty内置函数内置函数
114、PHP100PHP100视频教程视频教程演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:学习目标学习目标1 1、foreach foreach 数组的处理数组的处理2 2、include include 多功能使用多功能使用3 3、IFIF条件语句的使用条件语句的使用4 4、literal strip literal strip 文本的处理技巧文本的处理技巧.158(第第2929讲)PHPPHP模板引擎模板引擎SmartySmarty内置函数内置函数PHP100PHP100视频教程视频教程1 1、foreach foreach 数组的处理数组的处理 与我们在PHP中的foreach用法类
115、似,同样是用来遍历数组。在实际操作中与section 功能一样,但foreach在Smarty一般用来处理一维数组。=无键值数组foreach from=$name item=idid: $id/foreach=无键值数组foreach key=j item=v from=$name $j: $v/foreachkey 键值item内容from 数组.159(第第2929讲)PHPPHP模板引擎模板引擎SmartySmarty内置函数内置函数PHP100PHP100视频教程视频教程2 2、include include 多功能使用多功能使用include file=header.htmincl
116、ude file=D:wwwhead.htminclude file=head.htm title=Main Menu3 3、IFIF条件语句的使用条件语句的使用if $name=okelse/if同样支持elseif.160(第第2929讲)PHPPHP模板引擎模板引擎SmartySmarty内置函数内置函数PHP100PHP100视频教程视频教程4 4、literal strip literal strip 文本的处理技巧文本的处理技巧 literal literal 数据将被当作文本处理,此时模板将忽略其内部的所有字符信息. 该特性用于显示有可能包含大括号等字符信息的 javascrip
117、t 脚本literal . /literal strip标记中数据的首尾空格和回车. 这样可以保证模板容易理解且不用担心多余的空格导致问题.strip./strip一般放在HTML代码的开始和结束不建议大家把javascript写在页面上.161(第第2929讲)PHPPHP模板引擎模板引擎SmartySmarty内置函数内置函数PHP100视频教程还还有什么疑有什么疑问问可以到可以到 也可以以也可以以发发送送邮邮件到件到感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 PHP100PHP100视频教程视频教程.162(第第3030讲)PHPPHP模板引擎模板引擎S
118、martySmarty缓存应用缓存应用PHP100PHP100视频教程视频教程演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:学习目标学习目标1 1、SmartySmarty缓存的配置缓存的配置2 2、SmartySmarty缓存的使用和清除缓存的使用和清除3 3、SmartySmarty局部缓存局部缓存4 4、MYSQLMYSQL与与SmartySmarty的应用的应用.163(第第3030讲)PHPPHP模板引擎模板引擎SmartySmarty缓存应用缓存应用PHP100PHP100视频教程视频教程1 1、SmartySmarty缓存的配置缓存的配置$smarty-cache_dir
119、 = /caches/; /缓存目录$smarty-caching = true; /开启缓存,为flase的时侯缓存无效$smarty-cache_lifetime = 60; /缓存时间2 2、SmartySmarty缓存的使用和清除缓存的使用和清除$smarty-display(cache.tpl, cache_id); /创建带ID的缓存$smarty-clear_all_cache(); /清除所有缓存$smarty-clear_cache(index.htm); /清除index.tpl的缓存$smarty-clear_cache(index.htm,cache_id); /清除指
120、定id的缓存.164(第第3030讲)PHPPHP模板引擎模板引擎SmartySmarty缓存应用缓存应用PHP100PHP100视频教程视频教程3 3、SmartySmarty局部缓存局部缓存insert 函数默认是不缓存的。并且这个属性不能修改。index.htminsert name=get_timeindex.phpfunction insert_get_time() return date(Y-m-d H:m:s);smarty_block 函数功能更加强大,使用方法同上blockname没有缓存的:$smarty.now/blockname方法前缀.165(第第3030讲)PHPP
121、HP模板引擎模板引擎SmartySmarty缓存应用缓存应用PHP100PHP100视频教程视频教程4 4、MYSQLMYSQL与与SmartySmarty的应用的应用通过连接一个数据库,具体学习通过连接一个数据库,具体学习MYSQLMYSQL与与Smarty Smarty 的应用的应用mysql_classsmarty_classPHPtemplatesbrowser.166(第第3030讲)PHPPHP模板引擎模板引擎SmartySmarty缓存应用缓存应用PHP100视频教程还还有什么疑有什么疑问问可以到可以到 也可以以也可以以发发送送邮邮件到件到感谢收看本次教程!感谢收看本次教程!本次
122、演讲老师:张恩民本次演讲老师:张恩民 PHP100PHP100视频教程视频教程.167(第第3131讲)PHPPHP在线编辑器在线编辑器fckeditorfckeditor应用应用PHP100PHP100视频教程视频教程演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:学习目标学习目标1 1、什么是在线编辑器、什么是在线编辑器2 2、fckeditorfckeditor配置配置3 3、fckeditorfckeditor的应用的应用4 4、fckeditorfckeditor结合数据库应用结合数据库应用.168(第第3131讲)PHPPHP在线编辑器在线编辑器fckeditorfckedi
123、tor应用应用PHP100PHP100视频教程视频教程传统的文本编辑排版editor的文本编辑排版1 1、什么是在线编辑器、什么是在线编辑器在线排版,方便用户和编辑操作,图片,文字,视频等功能生成对应的HTM代码的编辑器,fckeditor 是其中一个做的比较好的一类编辑器.169(第第3131讲)PHPPHP在线编辑器在线编辑器fckeditorfckeditor应用应用PHP100PHP100视频教程视频教程2 2、fckeditorfckeditor配置配置$sBasePath = $_SERVERPHP_SELF ;$sBasePath = dirname($sBasePath)./;
124、 $oFCKeditor = new FCKeditor(FCKeditor1) ;$oFCKeditor-BasePath = $sBasePath ;3 3、fckeditorfckeditor的应用的应用dirname ,取得路径目录命的函数$oFCKeditor-Create(); 创建一个窗口出来 $oFCKeditor-Value=初始值;提交时,直接使用实例化时的名称 FCKeditor1.170(第第3131讲)PHPPHP在线编辑器在线编辑器fckeditorfckeditor应用应用PHP100PHP100视频教程视频教程4 4、fckeditorfckeditor结合数据
125、库应用结合数据库应用.171(第第3131讲)PHPPHP在线编辑器在线编辑器fckeditorfckeditor应用应用PHP100视频教程还还有什么疑有什么疑问问可以到可以到 也可以以也可以以发发送送邮邮件到件到感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 PHP100PHP100视频教程视频教程.172(第第3232讲)PHP5PHP5中中CookieCookie与与 Session Session详解详解PHP100PHP100视频教程视频教程演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:学习目标学习目标1 1、CookieCookie和和Ses
126、sionSession简介与区别简介与区别2 2、CookieCookie的配置与应用的配置与应用3 3、SessionSession的配置与应用的配置与应用4 4、用、用CookieCookie和和SessionSession做登陆做登陆.173(第第3232讲)PHP5PHP5中中CookieCookie与与 Session Session详解详解PHP100PHP100视频教程视频教程在非常多时候,我们需要跟踪浏览者在整个网站的活动,对他们身份进行自动或半自动的识别(也就是平时常说的网站登陆之类的功能),这时候,我们常采用Cookie与 Session来跟踪和判断。1 1、CookieC
127、ookie和和SessionSession简介与区别简介与区别Session信息是存放在server端,但session id是存放在client cookie的,当然php的session存放方法是多样化的,这样就算禁用cookie一样可以跟踪Cookie是完全保持在客户端的如:IE firefox 当客户端禁止cookie时将不能再使用区别区别.174(第第3232讲)PHP5PHP5中中CookieCookie与与 Session Session详解详解PHP100PHP100视频教程视频教程2 2、CookieCookie的配置与应用的配置与应用S Setcookie(stringna
128、me,stringvalue,intexpire,stringpath,stringdomain,intsecure);其中其中name是是cookie变量名称标识,你在变量名称标识,你在php中将能象使用普通变量名相同来用他引用中将能象使用普通变量名相同来用他引用cookie变量。变量。value是是cookie变量的初始值,变量的初始值,expire表示该表示该cookie变量的有效时间;变量的有效时间;path为该为该cookie变量的相关路径;变量的相关路径;domain表示表示cookie变量的网站;变量的网站;secure则需在则需在 https的的安全传输时才有效。安全传输时才有
129、效。 例:例:SetCookie(Cookie,cookievalue,time()+3600time()+3600,/forum,,1);毫秒毫秒time()+3600=1time()+3600=1小时小时保存路径保存路径保存的域保存的域HTTPSHTTPS名称,必须名称,必须值,必须值,必须.175(第第3232讲)PHP5PHP5中中CookieCookie与与 Session Session详解详解PHP100PHP100视频教程视频教程2 2、CookieCookie的配置与应用的配置与应用接收和处理接收和处理CookiePHP对对Cookie的接收和处理的支持非常好,是完全自动的,
130、跟的接收和处理的支持非常好,是完全自动的,跟FORM变量的原则一变量的原则一样,特别简单。样,特别简单。比如设置一个名为比如设置一个名为 MyCookier的的Cookie,PHP会自动从会自动从WEB服务器接收的服务器接收的HTTP头里把头里把它分析出来,并形成一个与普通变量一样的变量,名为它分析出来,并形成一个与普通变量一样的变量,名为$myCookie,这个变量的值就,这个变量的值就是是Cookie的值。数组同样适用。另外一个办法是引用的值。数组同样适用。另外一个办法是引用PHP的全局变量的全局变量$HTTP_COOKIE_VARS数组。数组。分别举例如下:(假设这些都在以前的页面里设置
131、过了,并且仍然有效)分别举例如下:(假设这些都在以前的页面里设置过了,并且仍然有效)echo$MyCookie;echo$CookieArray0;echo$_COOKIEMyCookie;echo$HTTP_COOKIE_VARSMyCookie;.176(第第3232讲)PHP5PHP5中中CookieCookie与与 Session Session详解详解PHP100PHP100视频教程视频教程2 2、CookieCookie的配置与应用的配置与应用删删除除Cookie要要删删除一个已除一个已经经存在的存在的Cookie,有两个,有两个办办法:法:1 1、SetCookie(Cookie
132、,);2 2、SetCookie(Cookie,valuevalue , time()-1 / time() , time()-1 / time() );使用使用Cookie的限制的限制1 1、必必须须在在HTML文件的内容文件的内容输输出之前出之前设设置;置;2 2、不同的不同的浏览浏览器器对对Cookie的的处处理不一致,且有理不一致,且有时时会出会出现错误现错误的的结结果。果。3 3、限制是在客限制是在客户户端的。一个端的。一个浏览浏览器能器能创创建的建的Cookie数量最多数量最多为为30个,并且每个不能个,并且每个不能超超过过4KB,每个,每个WEB站点能站点能设设置的置的Cooki
133、e总总数不能超数不能超过过20个。个。.177(第第3232讲)PHP5PHP5中中CookieCookie与与 Session Session详解详解PHP100PHP100视频教程视频教程3 3、SessionSession的配置与应用的配置与应用session_start(); /初始化初始化session.需在文件头部需在文件头部$_SESSIONnamename=value; /=value; /配置配置SeeeionSeeeionechoecho $_SESSIONnamename; /; /使用使用sessionsessionisset(isset($_SESSIONnamena
134、me); / ); / 判断判断unset(unset($_SESSIONnamename); /); /删除删除session_destroysession_destroy()(); / /消耗所有消耗所有sessionsession注意:注意:session_register(),session_unregister,session_is_registered在在php5下不再使用下不再使用.178(第第3232讲)PHP5PHP5中中CookieCookie与与 Session Session详解详解PHP100PHP100视频教程视频教程4 4、用、用CookieCookie和和Ses
135、sionSession做登陆做登陆.179(第第3232讲)PHP5PHP5中中CookieCookie与与 Session Session详解详解PHP100视频教程还还有什么疑有什么疑问问可以到可以到 也可以以也可以以发发送送邮邮件到件到感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 PHP100PHP100视频教程视频教程.180(第第3333讲)PHP5PHP5中图片验证码的制作(上)中图片验证码的制作(上)PHP100PHP100视频教程视频教程演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:学习目标学习目标1 1、启用、启用PHPPHP中中GDG
136、D库库2 2、部分、部分GDGD库函数的介绍库函数的介绍3 3、学习:随机函数,十六进制函数、学习:随机函数,十六进制函数4 4、GD+SESSIONGD+SESSION制作制作PHPPHP验证码验证码.181(第第3333讲)PHP5PHP5中图片验证码的制作(上)中图片验证码的制作(上)PHP100PHP100视频教程视频教程1 1、启用、启用PHPPHP中中GDGD库库;extension=php_gd2.dll通过通过PHP.ini PHP.ini 启用启用GDGD库库去掉去掉通过通过WAMPserver WAMPserver 启用启用GDGD库库GDGD库库提供了一系列用来提供了一系
137、列用来处处理理图图片的片的API,使用,使用GD库库可以可以处处理理图图片,或者生成片,或者生成图图片。片。在网站上在网站上GD库库通常用来生成通常用来生成缩缩略略图图或者用来或者用来对图对图片加水印或者片加水印或者对对网站数据生成网站数据生成报报表。表。.182(第第3333讲)PHP5PHP5中图片验证码的制作(上)中图片验证码的制作(上)PHP100PHP100视频教程视频教程2 2、部分、部分GDGD库函数的介绍库函数的介绍1 1、 imagecreatetruecolor 新建一个真彩色图像新建一个真彩色图像imagecreatetruecolor(intx_size,inty_si
138、ze) / x / x就是宽就是宽 ,y y就是高就是高2 2、imagecolorallocate imagecolorallocate 为一幅图像分配颜色为一幅图像分配颜色( (调色板调色板) )imagecolorallocate(resourceimage,intred,intgreen,intblue)三原色三原色3 3、imagestring 绘图函数绘图函数imagestring(resourceimage,font,intx,inty,内容内容 , 颜色颜色).183(第第3333讲)PHP5PHP5中图片验证码的制作(上)中图片验证码的制作(上)PHP100PHP100视频教
139、程视频教程3 3、学习:随机函数,十六进制函数、学习:随机函数,十六进制函数1 1 、rand 随机函数随机函数 rand(intmin,intmax) rand(1,4) (1,4) 随机随机 1-4 1-4 之间的数之间的数2 2、dechex 十进制转换为十六进制十进制转换为十六进制dechex (十进制数十进制数) 十六进制十六进制 1 f 1 f.184(第第3333讲)PHP5PHP5中图片验证码的制作(上)中图片验证码的制作(上)PHP100PHP100视频教程视频教程4 4、GD+SESSIONGD+SESSION制作制作PHPPHP验证码验证码.185(第第3333讲)PHP
140、5PHP5中图片验证码的制作(上)中图片验证码的制作(上)PHP100视频教程还还有什么疑有什么疑问问可以到可以到 也可以以也可以以发发送送邮邮件到件到感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 PHP100PHP100视频教程视频教程.186(第第3434讲)PHP5PHP5中图片验证码的制作(下)中图片验证码的制作(下)PHP100PHP100视频教程视频教程演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:学习目标学习目标1 1、imageimage与与headerheader输出的介绍输出的介绍2 2、imageline imageline 与与
141、imagesetpixel imagesetpixel 函数函数3 3、imagettftextimagettftext函数调用字体写入文字函数调用字体写入文字4 4、PHPPHP验证码插入中文的方法验证码插入中文的方法.187(第第3434讲)PHP5PHP5中图片验证码的制作(下)中图片验证码的制作(下)PHP100PHP100视频教程视频教程1 1、imageimage与与headerheader输出的介绍输出的介绍PHP的的HEADER是定义头的动作,新是定义头的动作,新PHP5PHP5中支持三种类型:中支持三种类型:Content-Type:xxxx/yyyy Location:xx
142、xx:yyyy/zzzzStatus:nnnxxxxxxheaderheader(* *)内容文件的类型内容文件的类型如:如:image/gifimage/gif image/jpeg image/jpeg image/png image/png http:/ 完整的类型列表完整的类型列表GDGD库中有对应的库中有对应的imageimage类型类型imagejpeg(*) (*) imagegif(*) gif(*) imagepng(*) png(*) .188(第第3434讲)PHP5PHP5中图片验证码的制作(下)中图片验证码的制作(下)PHP100PHP100视频教程视频教程2 2、i
143、mageline imageline 与与 imagesetpixel imagesetpixel 函数函数imageline 画线函数画线函数 imagesetpixel(resourceimage,intx,inty,intcolor)imagesetpixel画点函数画点函数imageline(resourceimage,intx1,inty1,intx2,inty2,intcolor)3 3、imagettftextimagettftext函数调用字体写入文字函数调用字体写入文字imagettftext ( resource image, float size, float angle
144、, int x, int y, int color, string fontfile, string text )imagettftext 带字体的写入函数带字体的写入函数.189(第第3434讲)PHP5PHP5中图片验证码的制作(下)中图片验证码的制作(下)PHP100PHP100视频教程视频教程4 4、PHPPHP验证码插入中文的方法验证码插入中文的方法iconv(gb2312,UTF-8,新年快新年快乐乐!);/首先要将文字转换成首先要将文字转换成UTF8UTF8格式格式然后使用然后使用imagettftext 调用一种字体,再将转换好的UTF8格式的中文写入图片中!.190(第第34
145、34讲)PHP5PHP5中图片验证码的制作(下)中图片验证码的制作(下)PHP100视频教程还还有什么疑有什么疑问问可以到可以到 也可以以也可以以发发送送邮邮件到件到感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 PHP100PHP100视频教程视频教程.191(第第3535讲)PHP5PHP5文字图片混合水印与缩略图文字图片混合水印与缩略图PHP100PHP100视频教程视频教程演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:学习目标学习目标1 1、介绍、介绍PHPPHP水印原理和流程水印原理和流程2 2、ImageCreateFrom* ImageCre
146、ateFrom* 图片载入函数图片载入函数3 3、imagecopy imagecopy 图片合并函数图片合并函数4 4、ImageCopyResizedImageCopyResized图片剪切函数图片剪切函数.192(第第3535讲)PHP5PHP5文字图片混合水印与缩略图文字图片混合水印与缩略图PHP100PHP100视频教程视频教程1 1、介绍、介绍PHPPHP水印原理和流程水印原理和流程原始图片原始图片上传到上传到dirdir载入到载入到PHPPHPPHPPHP初始化初始化水印处理水印处理生成新图生成新图水印图片水印图片水印文字水印文字大图大图小图小图缩略图缩略图.193(第第3535
147、讲)PHP5PHP5文字图片混合水印与缩略图文字图片混合水印与缩略图PHP100PHP100视频教程视频教程2 2、ImageCreateFromImageCreateFrom* * 图片载入函数图片载入函数ImageCreateFromImageCreateFrom* * 载入载入PHPPHP是一个将图片编码转成是一个将图片编码转成PHPPHP可识别的编码的过程可识别的编码的过程ImageCreateFromImageCreateFrom* * imagecreatefromgifimagecreatefromjpegimagecreatefrompngimagecreatefromwbmp
148、imagecreatefromstring通过一串图片编码通过一串图片编码imagecreatefromgif( (php100.gifphp100.gif););使用格式使用格式3 3、imagecopy imagecopy 图片合并函数图片合并函数imagecopy(DimgDimg,SimgSimg,intx,inty,intsrc_x,intsrc_y,intsrc_w,intsrc_h).194(第第3535讲)PHP5PHP5文字图片混合水印与缩略图文字图片混合水印与缩略图PHP100PHP100视频教程视频教程4 4、ImageCopyResizedImageCopyResize
149、d图片剪切函数图片剪切函数imagecopyresized(resourcedst_image,resourcesrc_image,intdst_x,intdst_y,intsrc_x,intsrc_y,intdst_w,intdst_h,intsrc_w,intsrc_h)在使用剪切图之前我们需要先建立一个真彩图,也就是方便内存来存储在使用剪切图之前我们需要先建立一个真彩图,也就是方便内存来存储.195(第第3535讲)PHP5PHP5文字图片混合水印与缩略图文字图片混合水印与缩略图PHP100视频教程还还有什么疑有什么疑问问可以到可以到 也可以以也可以以发发送送邮邮件到件到感谢收看本次教程
150、!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 PHP100PHP100视频教程视频教程.196(第第3636讲)PHPPHP中正则表达式学习及应用(一)中正则表达式学习及应用(一)PHP100PHP100视频教程视频教程演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:学习目标学习目标1 1、正则表达式的介绍和作用、正则表达式的介绍和作用2 2、PHPPHP中两个常用的正则函数中两个常用的正则函数3 3、正则表达式中包括的元素、正则表达式中包括的元素4 4、正则表达式中的、正则表达式中的“原子原子”.197(第第3636讲)PHPPHP中正则表达式学习及应用(一)中正则表达
151、式学习及应用(一)PHP100PHP100视频教程视频教程1 1、正则表达式的介绍和作用、正则表达式的介绍和作用在在编编写写处处理字符串的程序或网理字符串的程序或网页时页时, ,经经常会有常会有查查找符合某些复找符合某些复杂规则杂规则的字符串的字符串的需要。正的需要。正则则表达式就是用于描述表达式就是用于描述这这些些规则规则的的语法语法。 。什么是正则表达式什么是正则表达式例:在判断用户邮件地址格式、手机号码格式或者采集别人网页内容时例:在判断用户邮件地址格式、手机号码格式或者采集别人网页内容时主要的作用是:主要的作用是:分割、匹配、查找、替换分割、匹配、查找、替换注:正则表达式对于一个程序员
152、来讲是至关重要的一个知识点,所以学好正则注:正则表达式对于一个程序员来讲是至关重要的一个知识点,所以学好正则 是每一个程序员必须具备的。不仅可以帮助我们完成一些通过函数无法实现是每一个程序员必须具备的。不仅可以帮助我们完成一些通过函数无法实现 的工作,还可以帮助我们减轻很多工作量。的工作,还可以帮助我们减轻很多工作量。.198(第第3636讲)PHPPHP中正则表达式学习及应用(一)中正则表达式学习及应用(一)PHP100PHP100视频教程视频教程2 2、PHPPHP中两个常用的正则函数中两个常用的正则函数3 3、正则表达式中包括的元素、正则表达式中包括的元素preg_match(modem
153、ode,stringsubject,arraymatches)preg_match 正则函数,以正则函数,以perlperl语言为基础语言为基础ereg(modemode,stringsubject,arrayregs)ereg 正则函数,以正则函数,以POSIXPOSIX基础基础 (Unix Unix 、 Script Script)(1)(1)、原子原子(普通字符:(普通字符:a-z A-Z 0-9 a-z A-Z 0-9 、原子表、原子表、 转义字符)转义字符)(2)(2)、元字符元字符 (有特殊功能的字符)(有特殊功能的字符)(3)(3)、模式修正符模式修正符 (系统内置部分字符(系统
154、内置部分字符 i i 、m m、S S、U U).199(第第3636讲)PHPPHP中正则表达式学习及应用(一)中正则表达式学习及应用(一)PHP100PHP100视频教程视频教程4 4、正则表达式中的、正则表达式中的“原子原子”a-z A-Z _ 0-9 a-z A-Z _ 0-9 /最常见的字符最常见的字符(abc) (skd) (abc) (skd) /用圆括号包含起来的单元符合用圆括号包含起来的单元符合abcs abd abcs abd /用方括号包含的原子表,原子表中的用方括号包含的原子表,原子表中的 代表排除或相反内容代表排除或相反内容转义字符转义字符 d d 包含所有数字包含所
155、有数字0-90-9 D D 除所有数字外除所有数字外0-90-9 w w 包含所有英文字符包含所有英文字符a-zA-Z_0-9a-zA-Z_0-9 W W 除所有英文字符外除所有英文字符外a-zA-Z_0-9a-zA-Z_0-9 s s 包含空白区域如回车、换行、分页等包含空白区域如回车、换行、分页等 fnr fnr.200(第第3636讲)PHPPHP中正则表达式学习及应用(一)中正则表达式学习及应用(一)PHP100PHP100视频教程视频教程还还有什么疑有什么疑问问可以到可以到 也可以以也可以以发发送送邮邮件到件到感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩
156、民 .201(第第3737讲)PHPPHP中正则表达式学习及应用(二)中正则表达式学习及应用(二)PHP100PHP100视频教程视频教程演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:学习目标学习目标正则表达式中的正则表达式中的“元字符元字符”.202(第第3737讲)PHPPHP中正则表达式学习及应用(二)中正则表达式学习及应用(二)PHP100PHP100视频教程视频教程正则表达式元字符正则表达式元字符* * 匹配前一个内容的匹配前一个内容的0 0次次1 1次或多次次或多次. . 匹配内容的匹配内容的0 0次次1 1次或多次,但不包含回车换行次或多次,但不包含回车换行+ + 匹配前
157、一个内容的匹配前一个内容的1 1次或多次次或多次?匹配前一个内容的?匹配前一个内容的0 0次或次或1 1次次| | 选择匹配类似选择匹配类似PHPPHP中的中的| | (因为这个运算符合是弱类型导致前面最为整体匹配)(因为这个运算符合是弱类型导致前面最为整体匹配) 匹配字符串首部内容匹配字符串首部内容$ $ 匹配字符串尾部内容匹配字符串尾部内容b b 匹配单词边界,边界可以是空格或者特殊符合匹配单词边界,边界可以是空格或者特殊符合B B 匹配除带单词边界意外内容匹配除带单词边界意外内容m m 匹配前一个内容的重复次数为匹配前一个内容的重复次数为M M次次m, m, 匹配前一个内容的重复次数大于
158、等于匹配前一个内容的重复次数大于等于M M次次m,n m,n 匹配前一个内容的重复次数匹配前一个内容的重复次数M M次到次到N N次次( ) ( ) 合并整体匹配,并放入内存,可使用合并整体匹配,并放入内存,可使用1 21 2依次获取依次获取.203(第第3737讲)PHPPHP中正则表达式学习及应用(二)中正则表达式学习及应用(二)PHP100PHP100视频教程视频教程还还有什么疑有什么疑问问可以到可以到 也可以以也可以以发发送送邮邮件到件到感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 .204(第第3838讲)PHPPHP中正则表达式学习及应用(三)中正则
159、表达式学习及应用(三)PHP100PHP100视频教程视频教程演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:学习目标学习目标正则表达式中的正则表达式中的“模式修正符模式修正符”1 1、运算顺序、运算顺序 2 2、模式修正符、模式修正符.205(第第3838讲)PHPPHP中正则表达式学习及应用(三)中正则表达式学习及应用(三)PHP100PHP100视频教程视频教程1 1、运算顺序、运算顺序依然遵循从左到依然遵循从左到右的运算规则右的运算规则优先级优先级( ) ( ) 圆括号因为是内存处理所以最高圆括号因为是内存处理所以最高* * ? + + 重复匹配内容其次重复匹配内容其次 $ b
160、$ b 边界处理第三边界处理第三| | 条件处理第四条件处理第四最后按照运算顺序计算匹配最后按照运算顺序计算匹配.206(第第3838讲)PHPPHP中正则表达式学习及应用(三)中正则表达式学习及应用(三)PHP100PHP100视频教程视频教程2 2、模式修正符、模式修正符模式修正符是为正则表达式增强和补充的一个功能,使用在正则之外模式修正符是为正则表达式增强和补充的一个功能,使用在正则之外/ / 正则正则 / U / U 模式修正符模式修正符常用修正符常用修正符i i 正则内容在匹配时候不区分大小写(默认是区分的)正则内容在匹配时候不区分大小写(默认是区分的)m m 在匹配首内容或者尾内容
161、时候采用多行识别匹配在匹配首内容或者尾内容时候采用多行识别匹配S S 将转义回车取消是为单行匹配如将转义回车取消是为单行匹配如. . 匹配的时候匹配的时候x x 忽略正则中的空白忽略正则中的空白A A 强制从头开始匹配强制从头开始匹配D D 强制强制$ $匹配尾部无任何内容匹配尾部无任何内容 n nU U 禁止贪婪匹配禁止贪婪匹配 只跟踪到最近的一个匹配符并结束,只跟踪到最近的一个匹配符并结束, 常用在采集程序上的正则表达式常用在采集程序上的正则表达式.207(第第3838讲)PHPPHP中正则表达式学习及应用(三)中正则表达式学习及应用(三)PHP100PHP100视频教程视频教程还还有什么
162、疑有什么疑问问可以到可以到 也可以以也可以以发发送送邮邮件到件到感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 .208(第第3939讲)PHPPHP中正则表达式学习及应用(四)中正则表达式学习及应用(四)PHP100PHP100视频教程视频教程演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:学习目标学习目标正则表达式在正则表达式在PHPPHP中的应用中的应用1 1、匹配功能、匹配功能 2 2、替换功能、替换功能 3 3、分割功能、分割功能.209(第第3939讲)PHPPHP中正则表达式学习及应用(四)中正则表达式学习及应用(四)PHP100PHP100视
163、频教程视频教程1 1、匹配功能、匹配功能 preg_match_all 全部匹配函数全部匹配函数preg_match_all(stringpattern,stringsubject,arraymatches,intflags)对结果排序使对结果排序使 $matches0 $matches0 为全部模式匹配的数组为全部模式匹配的数组用途:截取比较详细的内容,采集网页,分析文本用途:截取比较详细的内容,采集网页,分析文本.210(第第3939讲)PHPPHP中正则表达式学习及应用(四)中正则表达式学习及应用(四)PHP100PHP100视频教程视频教程2 2、替换功能、替换功能 preg_repl
164、ace replace 正则替换函数正则替换函数preg_replace(mixedpattern,mixedreplacement,mixedsubject,intlimit)通过正则表达式来替换相关内容,类似之前学过的通过正则表达式来替换相关内容,类似之前学过的str_replacestr_replace字符串替换,但字符串替换,但功能要强于它。功能要强于它。提示提示:1 1、替换内容可以是一个正则也可以是数组正则、替换内容可以是一个正则也可以是数组正则 2 2、替换内容可以通过修正符、替换内容可以通过修正符e e来解决替换执行内容来解决替换执行内容用途:替换一些比较复杂的内容上,也可以用
165、于内容的转换上用途:替换一些比较复杂的内容上,也可以用于内容的转换上.211(第第3939讲)PHPPHP中正则表达式学习及应用(四)中正则表达式学习及应用(四)PHP100PHP100视频教程视频教程3 3、分割功能、分割功能 preg_split split 正则切割正则切割preg_split(stringpattern,stringsubject,intlimit,intflags)通过正则表达式来切割相关内容,类似之前学过的通过正则表达式来切割相关内容,类似之前学过的explodeexplode切割函数,但切割函数,但explodeexplode只能按照一种方式切割有局限性。只能按照
166、一种方式切割有局限性。用途:太广用途:太广.212(第第3939讲)PHPPHP中正则表达式学习及应用(四)中正则表达式学习及应用(四)PHP100PHP100视频教程视频教程还还有什么疑有什么疑问问可以到可以到 也可以以也可以以发发送送邮邮件到件到感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 .213PHP100PHP100视频教程视频教程演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:学习目标学习目标1 1、什么是、什么是UBBUBB代码代码2 2、UBBUBB代码运行过程代码运行过程3 3、介绍几种简单的、介绍几种简单的UBBUBB代码代码4 4、写
167、一个自己的、写一个自己的UBBUBB(第第4040讲讲)PHPPHP中开发自己的中开发自己的 UBB UBB代码代码 .214PHP100PHP100视频教程视频教程(第第4040讲讲)PHPPHP中开发自己的中开发自己的 UBB UBB代码代码 1 1、什么是、什么是UBBUBB代码代码UBB代代码码是是HTML的一个的一个变变种种,是是UltimateBulletinBoard(国外一个国外一个BBS程序,国内程序,国内也有不少地方使用也有不少地方使用这这个程序个程序)采用的一种特殊的采用的一种特殊的TAG。 。UBB代代码码很很简单简单, ,虽然虽然功能功能很少,很少,但基本实现了我们常
168、用的一些功能但基本实现了我们常用的一些功能. .优点:优点: 1 1、相对、相对HTMLHTML安全性高安全性高; ; 2 2、使用简单,方便记忆、使用简单,方便记忆; ; 3 3、自定义功能强大、自定义功能强大, ,扩展性好扩展性好; ; 4 4、有效较少数据库存储代码;、有效较少数据库存储代码;缺点:缺点: 1 1、排版功能弱、排版功能弱 2 2、不允许交叉使用、不允许交叉使用url url b PHP100PHP100中文站中文站 /b/bswf swf ./img/demo.swf ./img/demo.swf /swf/swfUBBUBB例子例子.215PHP100PHP100视频
169、教程视频教程(第第4040讲讲)PHPPHP中开发自己的中开发自己的 UBB UBB代码代码 2 2、UBBUBB代码运行过程代码运行过程UBBUBBDBDB解析解析UBBUBBDBDB解析解析输出输出输出输出两种使用模式两种使用模式UBB CodeUBB Code解析转换解析转换HTML CodeHTML Code.216PHP100PHP100视频教程视频教程(第第4040讲讲)PHPPHP中开发自己的中开发自己的 UBB UBB代码代码 3 3、介绍几种简单的、介绍几种简单的UBBUBB代码代码UBB正则正则HTMLurl /url /(url)(.*)(/url)/ia href=b
170、/b/(b)(.*)(/b)/iimg /img/(img)(.*)(/img)/iimg src=$str=preg_replace(/(url)(.*)(/url)/i,22,$str);例子例子: :.217PHP100PHP100视频教程视频教程(第第4040讲讲)PHPPHP中开发自己的中开发自己的 UBB UBB代码代码 .218(第第4040讲)PHPPHP中开发自己的中开发自己的 UBB UBB代码代码 PHP100PHP100视频教程视频教程还还有什么疑有什么疑问问可以到可以到 也可以以也可以以发发送送邮邮件到件到感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演
171、讲老师:张恩民 .219PHP100PHP100视频教程视频教程演讲老师:张恩民演讲老师:张恩民 支持网站:支持网站:学习目标学习目标1 1、SQLSQL语句中的模糊查找语句中的模糊查找2 2、多个关键字搜索的原理和技巧、多个关键字搜索的原理和技巧3 3、替换关键字高亮显示、替换关键字高亮显示(第第4141讲讲)PHPPHP站内搜索:多关键字、加亮显示站内搜索:多关键字、加亮显示.220PHP100PHP100视频教程视频教程(第第4141讲讲)PHPPHP站内搜索:多关键字、加亮显示站内搜索:多关键字、加亮显示1 1、SQLSQL语句中的模糊查找语句中的模糊查找LIKE条件一般用在指定搜索某
172、字段的条件一般用在指定搜索某字段的时时候候,通过通过% _ _通配符的作用实现模通配符的作用实现模糊查找功能,通配符可以在前面也可以在后面或前后都有。糊查找功能,通配符可以在前面也可以在后面或前后都有。搜索以搜索以PHP100PHP100开头开头: :SELECT*FROMteble teble WHEREtitle title LIKE PHP100PHP100%搜索以搜索以PHP100PHP100结束结束: :SELECT*FROMteble teble WHEREtitle title LIKE %PHP100%PHP100搜索包含搜索包含PHP100PHP100: :SELECT*FR
173、OMteble teble WHEREtitle title LIKE %PHP100%PHP100%注释:注释:%表示表示0个或多个字符构成的字符串个或多个字符构成的字符串 _表示表示单单个字符个字符.221PHP100PHP100视频教程视频教程(第第4141讲讲)PHPPHP站内搜索:多关键字、加亮显示站内搜索:多关键字、加亮显示2 2、多个关键字搜索的原理和技巧、多个关键字搜索的原理和技巧提交表单提交表单PHPPHP接收接收执行执行SQLSQL输出结果输出结果提交一个提交一个或者多个关键字或者多个关键字使用空格或者使用空格或者+ +号号区分关键字区分关键字拆分出多个关键字拆分出多个关键
174、字放在数组中放在数组中通过复合模糊查找通过复合模糊查找获得结果获得结果$key=explode(,$_GETkey);subjectlike%$key0%3 3、替换关键字高亮显示、替换关键字高亮显示正则替换关键字效果正则替换关键字效果输出结果输出结果.222PHP100PHP100视频教程视频教程(第第4141讲讲)PHPPHP站内搜索:多关键字、加亮显示站内搜索:多关键字、加亮显示.223(第第4141讲)PHPPHP站内搜索:多关键字、加亮显示站内搜索:多关键字、加亮显示PHP100PHP100视频教程视频教程还还有什么疑有什么疑问问可以到可以到 也可以以也可以以发发送送邮邮件到件到感谢
175、收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 .224PHP100视频教程演讲老师:张恩民演讲老师:张恩民 官方官方网站:网站:学习目标学习目标1 1、PHPPHP中发送邮件的方式中发送邮件的方式2 2、mailmail函数的使用函数的使用3 3、socketsocket方式发送原理方式发送原理4 4、学会使用一个发送邮件的类、学会使用一个发送邮件的类(第第4242讲讲)PHPPHP通过通过mail()mail()或或SocketSocket发从邮件发从邮件.225PHP100视频教程(第第4242讲讲)PHPPHP通过通过mail()mail()或或SocketS
176、ocket发从邮件发从邮件1 1、PHPPHP中发送邮件的方式中发送邮件的方式PHPPHP发送邮件是发送邮件是“非常的简单非常的简单” 因为他提供了因为他提供了mail()mail()函数直接发送,但这也继函数直接发送,但这也继 register globals register globals 成为了对初学者的第二大杀手。成为了对初学者的第二大杀手。(1 1)通过)通过mail()mail()函数发送邮件函数发送邮件mail()mail()需要类似需要类似sendmailsendmail这样的组件支持这样的组件支持配置配置PHP.ini PHP.ini 邮件信息邮件信息(2 2)通过)通过s
177、ocketsocket通讯,使用通讯,使用SMTPSMTP传输传输socketsocket连接连接SMTPSMTP通讯通讯获取通讯消息发送.226PHP100视频教程(第第4242讲讲)PHPPHP通过通过mail()mail()或或SocketSocket发从邮件发从邮件2 2、mailmail函数的使用函数的使用mail()函数允许您从脚本中直接发送电子邮件。函数允许您从脚本中直接发送电子邮件。如果邮件的投递被成功地接收,则返回如果邮件的投递被成功地接收,则返回 true,否则返回,否则返回 false。mail(to,subject,message,headers,parameters)
178、to必需。必需。规规定定邮邮件的接收者。件的接收者。subject必需。必需。规规定定邮邮件的主件的主题题。 。该该参数不能包含任何参数不能包含任何换换行字符。行字符。message必需。必需。规规定要定要发发送的消息。送的消息。headers可选可选。 。规规定定额额外的外的报头报头,比如,比如From,Cc以及以及Bcc。 。parameters可选可选。 。规规定定sendmail程序的程序的额额外参数。外参数。Sendmail Sendmail 的支持的支持PHP.ini PHP.ini 的配置的配置 .227PHP100视频教程(第第4242讲讲)PHPPHP通过通过mail()ma
179、il()或或SocketSocket发从邮件发从邮件3 3、socketsocket方式发送原理方式发送原理使用使用fsockopen函数打开一个函数打开一个Internet连接连接fsockopen(stringhostname,intport,interrno,stringerrstr,inttimeout);这里由于要使用这里由于要使用SMTP协议,所以端口号为协议,所以端口号为25。在打开连接成功后,会返回一。在打开连接成功后,会返回一 个个socket句柄,使用它就可以象使用文件句柄一样的。可使用的操作有句柄,使用它就可以象使用文件句柄一样的。可使用的操作有fputs(),fgets
180、(),feof(),fclose()220服务就绪服务就绪(在在socket连接成功时,会返回此信息连接成功时,会返回此信息)221正在处理正在处理 250请求邮件动作正确,请求邮件动作正确,354开始发送数据,结束以开始发送数据,结束以 .500语法错误,命令不能识别语法错误,命令不能识别 550命令不能执行,邮箱无效命令不能执行,邮箱无效 552中断处理:用户超出文件空间中断处理:用户超出文件空间 了解原理即可了解原理即可.228(第第4242讲)PHPPHP通过通过mail()mail()或或SocketSocket发从邮件发从邮件PHP100视频教程还还有什么疑有什么疑问问可以到可以到
181、 也可以以也可以以发发送送邮邮件到件到感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 .229PHP100视频教程演讲老师:张恩民演讲老师:张恩民 官方官方网站:网站:学习目标学习目标1 1、什么是、什么是MVCMVC2 2、为为什么要使用什么要使用MVC3 3、认识一个、认识一个MVCMVC框架框架ThinkPHPThinkPHP4 4、如何搭建一个、如何搭建一个ThinkPHPThinkPHP5 5、ThinkPHPThinkPHP的简单使用的简单使用(第第4343讲讲)PHPPHP中中MVCMVC学习之学习之ThinkPHPThinkPHP(上)(上).23
182、0PHP100视频教程(第第4343讲讲)PHPPHP中中MVCMVC学习之学习之ThinkPHPThinkPHP(上)(上)1 1、什么是、什么是MVCMVCMVC本来是存在于本来是存在于Desktop程序中的,程序中的,M是指数据模型,是指数据模型,V是指用户界面,是指用户界面,C则则是控制器。使用是控制器。使用MVC的目的是将的目的是将M和和V的实现代码分离的实现代码分离MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用用MVC应用程序被分成三个核心部件:应用程序被分成三个核心部件:模型、视图、控制器模型、
183、视图、控制器。它们各自处理。它们各自处理自己的任务。自己的任务。.231PHP100视频教程(第第4343讲讲)PHPPHP中中MVCMVC学习之学习之ThinkPHPThinkPHP(上)(上)2 2、为为什么要使用什么要使用MVC首先,最重要的一点是多个视图能共享一个模型,现在需要用越来越多的方式来访首先,最重要的一点是多个视图能共享一个模型,现在需要用越来越多的方式来访问你的应用程序。由于模型返回的数据没有进行格式化,所以同样的构件能被不同问你的应用程序。由于模型返回的数据没有进行格式化,所以同样的构件能被不同界面使用。界面使用。再次,开发周期缩短、方便维护和管理降低开发成本和工作量。再
184、次,开发周期缩短、方便维护和管理降低开发成本和工作量。任何一个事物也会有缺点,我们来看一下:任何一个事物也会有缺点,我们来看一下:MVC的缺点是由于它没有明确的定义,所以完全理解的缺点是由于它没有明确的定义,所以完全理解MVC并不是很容易。使用并不是很容易。使用MVC需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。MVC并不适合小型甚至中等规模的应用程序,花费大量时间将并不适合小型甚至中等规模的应用程序,花费大量时间将MVC应用到规模并不应用到规模并不是很大的应用程序通常会得不偿失。是很大的应用程序通常
185、会得不偿失。.232PHP100视频教程(第第4343讲讲)PHPPHP中中MVCMVC学习之学习之ThinkPHPThinkPHP(上)(上)3 3、认识一个、认识一个MVCMVC框架框架ThinkPHPThinkPHPThinkPHP是一个快速、简单的面向对象的轻量级是一个快速、简单的面向对象的轻量级PHP开发框架,遵循开发框架,遵循Apache2开源协开源协议发布,并且永久免费使用,是为了简化企业级应用开发和敏捷议发布,并且永久免费使用,是为了简化企业级应用开发和敏捷WEB应用开发而诞生应用开发而诞生的。使用的。使用ThinkPHP,你可以更方便和快捷的开发和部署,你可以更方便和快捷的开
186、发和部署WEB应用应用简单易用的简单易用的MVC模式模式 独创的核心编译和项目编译机制独创的核心编译和项目编译机制 内置内置 XML模板引擎,支持标签库模板引擎,支持标签库 富模型支持富模型支持 目录结构自动创建目录结构自动创建 分布式数据库支持分布式数据库支持 多数据库连接和切换支持多数据库连接和切换支持CURD和操作高度自动化支持和操作高度自动化支持 特点特点.233PHP100视频教程(第第4343讲讲)PHPPHP中中MVCMVC学习之学习之ThinkPHPThinkPHP(上)(上)4 4、如何搭建一个、如何搭建一个ThinkPHPThinkPHP下载下载ThinkPHPThinkP
187、HP框架包,直接引用目录中的框架包,直接引用目录中的 ThinkPHP.php ThinkPHP.php 文件即可文件即可define(THINK_PATH,ThinkPHP/);define(APP_NAME,php100);define(APP_PATH,.);require(THINK_PATH./ThinkPHP.php);$App=newApp(); /实例化操作系统会自动创建开发目录实例化操作系统会自动创建开发目录$App-run(); .234PHP100视频教程(第第4343讲讲)PHPPHP中中MVCMVC学习之学习之ThinkPHPThinkPHP(上)(上)5 5、Thi
188、nkPHPThinkPHP的简单使用的简单使用ThinkPHPThinkPHP基本结构基本结构.235PHP100视频教程(第第4343讲讲)PHPPHP中中MVCMVC学习之学习之ThinkPHPThinkPHP(上)(上)5 5、ThinkPHPThinkPHP的简单使用的简单使用(1 1)ThinkPHPThinkPHP如何创建一个控制器如何创建一个控制器 只需在只需在LibActionLibAction目录下创建一个对应的控制器的类格式目录下创建一个对应的控制器的类格式 name.class.php name.class.php (2 2)ThinkPHP URLThinkPHP UR
189、L路由模的解析路由模的解析 ThinkPHP ThinkPHP采用单一入口方式,采用单一入口方式, 提供了一个提供了一个URLURL路由模式解析路由模式解析 / /.236(第第4343讲)PHPPHP中中MVCMVC学习之学习之ThinkPHPThinkPHP(上)(上)PHP100视频教程还还有什么疑有什么疑问问可以到可以到 也可以以也可以以发发送送邮邮件到件到感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 .237PHP100视频教程演讲老师:张恩民演讲老师:张恩民 官方官方网站:网站:学习目标学习目标1 1、ThinkPHPThinkPHP配置文件配置文件
190、2 2、ThinkPHPThinkPHP数据库操作数据库操作3 3、ThinkPHPThinkPHP模板的使用模板的使用4 4、实例操作、实例操作(第第4444讲讲)PHPPHP中中MVCMVC学习之学习之ThinkPHPThinkPHP(下)(下).238PHP100视频教程(第第4444讲讲)PHPPHP中中MVCMVC学习之学习之ThinkPHPThinkPHP(下)(下)1 1、ThinkPHPThinkPHP配置文件配置文件ThinkPHPCommon convention.php/*模模块块和操作和操作设设置置*/DEFAULT_MODULE =Index,/默默认认模模块块名称名
191、称DEFAULT_ACTION =index,/默默认认操作名称操作名称/*错误设错误设置置*/ DEBUG_MODE =false, /调试调试模式默模式默认认关关闭闭/惯例配置定义惯例配置定义 变量名大小写任意,都会统一转换成小写变量名大小写任意,都会统一转换成小写/如果要覆盖惯例配置的值,请在项目配置文件中设置如果要覆盖惯例配置的值,请在项目配置文件中设置/所有配置参数都可以在生效前动态改变所有配置参数都可以在生效前动态改变.239PHP100视频教程(第第4444讲讲)PHPPHP中中MVCMVC学习之学习之ThinkPHPThinkPHP(下)(下)2 2、ThinkPHPThink
192、PHP数据库操作数据库操作操作数据库前我们需要在配置文件中加入数据库连接操作数据库前我们需要在配置文件中加入数据库连接DB_TYPE=mysql,DB_HOST=localhost,DB_NAME=think_Php100,DB_USER=root,DB_PWD=,DB_PORT=3306,DB_PREFIX=think_,接下来,我们在接下来,我们在LibModel目录下面创建一个目录下面创建一个BlogModel.class.php文件,内容如下:文件,内容如下:classBlogModelextendsModel建立一个空的模块就可以了建立一个空的模块就可以了因为我们继承了因为我们继承了
193、ModelModel假设我们建立了一个假设我们建立了一个think_blogthink_blog表表.240PHP100视频教程(第第4444讲讲)PHPPHP中中MVCMVC学习之学习之ThinkPHPThinkPHP(下)(下)2 2、ThinkPHPThinkPHP数据库操作数据库操作定定义义了模型了模型类类,我,我们还们还需要修改需要修改Action类类的操作方法,来的操作方法,来获获取数据并取数据并显显示出来。示出来。我我们们把原来把原来默认执行默认执行的的index操作方法修改成下面的代操作方法修改成下面的代码码: :classIndexActionextendsActionpub
194、licfunctionindex()$Blog=newBlogModel();$list=$Blog-findAll();dump($list);.241PHP100视频教程(第第4444讲讲)PHPPHP中中MVCMVC学习之学习之ThinkPHPThinkPHP(下)(下)2 2、ThinkPHPThinkPHP数据库操作数据库操作.242PHP100视频教程(第第4444讲讲)PHPPHP中中MVCMVC学习之学习之ThinkPHPThinkPHP(下)(下)3 3、ThinkPHPThinkPHP模板的使用模板的使用到目前为止,我们只是使用了控制器和模型,还没有接触视图,下面来给上面的
195、应用到目前为止,我们只是使用了控制器和模型,还没有接触视图,下面来给上面的应用添加视图模板。添加视图模板。首先我们修改下首先我们修改下Action的的index操作方法,添加模板赋值和渲染模板操作。操作方法,添加模板赋值和渲染模板操作。classIndexActionextendsActionpublicfunctionindex()$Blog=newBlogModel();$list=$Blog-findAll();$this-assign(title,ThinkPHP示例示例);$this-assign(list,$list);$this-display();SmartySmarty风格风
196、格$title$vo.title$vo.content.243(第第4444讲)PHPPHP中中MVCMVC学习之学习之ThinkPHPThinkPHP(下)(下)PHP100视频教程还还有什么疑有什么疑问问可以到可以到 也可以以也可以以发发送送邮邮件到件到感谢收看本次教程!感谢收看本次教程!本次演讲老师:张恩民本次演讲老师:张恩民 .244PHP100PHP100视频教程视频教程演讲老师:张恩民 官方网站:学习目标1、PHPMyAdmin 简单配置和安装2、PHPMyAdmin 数据库的操作(十项功能)(第46讲) PHPMyAdmin 备份,导入,创建,修改,删除教程.245PHP100P
197、HP100视频教程视频教程(第46讲) PHPMyAdmin 备份,导入,创建,修改,删除教程1、PHPMyAdmin 简单配置和安装(1) 下载PHPMyAdmin压缩包,直接解压到网站或开发目录即可(2) 修改PHPMyAdmin配置文件首先找到PHPMyAdmin文件夹下config.inc.phpWamp中自带可省$cfgPmaAbsoluteUri = ;$cfgServers$ihost = localhost; / MySQL hostname or IP address$cfgServers$iport = ; / MySQL port - leave blank for de
198、fault port$cfgServers$iuser = root; / MySQL user$cfgServers$ipassword = ; / MySQL password (only needed修改如下.246PHP100PHP100视频教程视频教程(第46讲) PHPMyAdmin 备份,导入,创建,修改,删除教程2、PHPMyAdmin 数据库的操作 创建一个mysql数据库 创建一个mysql数据库表并添加字段 原表中插入新字段 修改字段类型,功能,名称 修改表类型名称编码 修改数据库基本信息和配置 PHPMyAdmin 一些常有选项卡的使用 导出几种类型的表或数据库 导入表
199、或数据库 数据简单优化和一些其他操作如何?.247(第第4646讲)PHPMyAdmin PHPMyAdmin 备份备份, ,导入导入, ,创建创建, ,修改修改, ,删除教程删除教程PHP100PHP100视频教程视频教程还有什么疑问可以到 也可以以发送邮件到 感谢收看本次教程!本次演讲老师:张恩民 .248PHP100PHP100视频教程视频教程演讲老师:张恩民 官方网站:学习目标1、定义 header()头部输出格式2、输出编码和支持的格式(第47讲) PHP输出CSV和EXCEL两种简单的方法.249PHP100PHP100视频教程视频教程(第47讲) PHP输出CSV和EXCEL两
200、种简单的方法1、定义 header()头部输出格式header(Content-type:application/vnd.ms-excel);header(Content-Disposition:filename=php100.xls);定义输出的文件类型定义输出的文件名.250PHP100PHP100视频教程视频教程(第47讲) PHP输出CSV和EXCEL两种简单的方法2、输出编码和支持的格式(1)支持普通格式的CSV 文本规范,以空格和换行来识别常用: t n 填充空白和换行(2)支持简单的HTML代码和表格规范常用:table 规范 ,表格合并规范,Font标签规范 PHP100财务统
201、计 t10t11t12 t20t21t22 均支持EXCEL运算语法如:=A1+B1.251(第第4747讲)PHPPHP输出输出CSVCSV和和EXCELEXCEL两种简单的方法两种简单的方法PHP100PHP100视频教程视频教程还有什么疑问可以到 也可以以发送邮件到 感谢收看本次教程!本次演讲老师:张恩民 .252PHP100PHP100视频教程视频教程演讲老师:张恩民 官方网站:学习目标1、ajax是什么及其工作原理2、创建XMLHttpRequest对象3、XMLHttpRequest对象相关方法(第48讲) Ajax+PHP快速上手及应用(一).253PHP100PHP100视频
202、教程视频教程(第48讲) Ajax+PHP快速上手及应用(一)1、ajax是什么及其工作原理Ajax 由 HTML、JavaScript 技术、DHTML 和 DOM 组成,这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序。HTML页面JS脚本PHP文件触发脚本执行反应.254PHP100PHP100视频教程视频教程(第48讲) Ajax+PHP快速上手及应用(一)2、创建XMLHttpRequest对象对于Ajax,最核心的一个对象是XMLHttpRequest,所有的Ajax操作都离不开对这个对象的操作xmlHttp = new XMLHttpRequest();
203、首先我们来了解怎么在javascript中创建这个对象:JS代码:这对于规范的Js支持的浏览器来讲是没错的恰恰相反IE却就不支持,所以没办法我们只能做个判断再创建一个IE支持的xmlHttp = new ActiveXObject(Microsoft.XMLHTTP);.255PHP100PHP100视频教程视频教程(第48讲) Ajax+PHP快速上手及应用(一)3、XMLHttpRequest对象相关方法XMLHttpRequest.open(传递方式,地址,是否异步请求)XMLHttpRequest.onreadystatechangeXMLHttpRequest.responseTex
204、t打开请求准备就绪执行获取执行结果.256(第第4848讲)Ajax+PHPAjax+PHP快速上手及应用(一)快速上手及应用(一)PHP100PHP100视频教程视频教程还有什么疑问可以到 也可以以发送邮件到 感谢收看本次教程!本次演讲老师:张恩民 .257PHP100PHP100视频教程视频教程演讲老师:张恩民 官方网站:学习目标1、解答48讲Ajxa常见问题2、方法XHR.readyState五种状态3、方法XHR.status常见的几种状态4、实例操作并学习一个PHP等待函数Sleep(第49讲) Ajax+PHP打造等待进度条效果(二).258PHP100PHP100视频教程视频教
205、程(第49讲) Ajax+PHP打造等待进度条效果(二)1、解答48讲Ajxa常见问题 (1) js脚本缓存问题 答:这个问题是大家遇到最常见问题之一,因为修改了js内容调试的时候并不能显示新写代码的结果,是因为js为了加速页面执行,当前页面会使用缓存保持当前调用的相同连接。为了开发时调试方便可以在连接地址的后面增加一个随机函数。 如原地址:for.php 增加随机后 for.php?1293874 (2) 本地调试js脚本不起作用 答:因为使用ajxa传递参数的时候需要head支持,所以我们只有在站点下才可以成功,比如我们放在Apache下面或者IIS下面进行调试。 (3) 调试代码查找错误
206、困难 答:这是js调试存在已久的问题,简单点我们可以使用ie默认提示的错误框,还有就是我们可以使用DW CS4提供的纠正错误,或者通过专业的插件如:firbug 等.259PHP100PHP100视频教程视频教程(第49讲) Ajax+PHP打造等待进度条效果(二)2、方法XHR.readyState五种状态0:请求未初始化,还没有调用 open()。 1:请求已经建立,但是还没有发送,还没有调用 send()。 2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。 3:请求在处理中;通常响应中已有部分数据可用了,没有全部完成。4:响应已完成;您可以获取并使用服务器的响应了。XHR.
207、readyState = 状态(0,1,2,3,4).260PHP100PHP100视频教程视频教程(第49讲) Ajax+PHP打造等待进度条效果(二)3 、方法XHR.status常见的几种状态100客户必须继续发出请求101客户要求服务器根据请求转换HTTP协议版本200成功201提示知道新文件的URL300请求的资源可在多处得到301删除请求数据404没有发现文件、查询或URl500服务器产生内部错误XHR.status = 200,300,404 等.261PHP100PHP100视频教程视频教程(第49讲) Ajax+PHP打造等待进度条效果(二)4、实例操作并学习一个PHP等待函
208、数SleepSleep函数,可以理解为等待函数或者睡眠函数,执行到该函数根据设置的时间再继续往下执行sleep(秒)Lets GO.262(第第4949讲)Ajax+PHPAjax+PHP打造等待进度条效果(二)打造等待进度条效果(二)PHP100PHP100视频教程视频教程还有什么疑问可以到 也可以以发送邮件到 感谢收看本次教程!本次演讲老师:张恩民 .263PHP100PHP100视频教程视频教程演讲老师:张恩民 官方网站:学习目标1、Ajax技术实现用户名检查原理2、学习HTML的几种触发3、如何获取表单中的数据内容(第50讲) Ajax+PHP检查用户名或邮件(三).264PHP10
209、0PHP100视频教程视频教程(第50讲) Ajax+PHP检查用户名或邮件(三)1、Ajax技术实现用户名检查原理填入用户名触发控件获得填写内容ajax传递查询数据库返回结果DOM反应到页面学习重点: 1、页面触发的几种类型 2、获取表单内容 3、数据库查询技巧.265PHP100PHP100视频教程视频教程(第50讲) Ajax+PHP检查用户名或邮件(三)2、学习HTML的几种触发onblur 事件会在对象失去焦点时发生。onchange 事件会在域的内容改变时发生。onclick 事件会在对象被点击时发生。onfocus 事件在对象获得焦点时发生。onkeydown 事件会在用户按下一
210、个键盘按键时发生。onkeypress 事件会在键盘按键被按下并释放一个键时发生。onkeyup 事件会在键盘按键被松开时发生。onmousedown 事件会在鼠标按键被按下时发生。onmousemove 事件会在鼠标指针移动时发生。onmouseout 事件会在鼠标指针移出指定的对象时发生。onmouseup 事件会在鼠标按键被松开时发生。.266PHP100PHP100视频教程视频教程(第50讲) Ajax+PHP检查用户名或邮件(三)3、如何获取表单中的数据内容form name=myform codedocument.myform.user.value.267(第第5050讲)Ajax
211、+PHPAjax+PHP检查用户名或邮件(三)检查用户名或邮件(三)PHP100PHP100视频教程视频教程还有什么疑问可以到 也可以以发送邮件到 感谢收看本次教程!本次演讲老师:张恩民 .268PHP100PHP100视频教程视频教程演讲老师:张恩民 官方网站:学习重点会员系统的原理及其安全(第51讲) PHP+MYSQL会员系统的开发(上).269PHP100PHP100视频教程视频教程(第51讲) PHP+MYSQL会员系统的开发(上)会员系统的原理登陆判断保持状态CookieSessionP1P2P3P4P5验证状态及其权限会员系统的安全1、学会使用常量提高md5安全性2、Cooki
212、e/ Session 少用明文信息3、Session安全性要大于Cookie4、使用Cookie/ Session读取信息 尽量增加判断信息5、Cookie/ Session内容要精简6、对于错误信息及时销毁Cookie/ Session.270(第第5151讲)PHP+MYSQLPHP+MYSQL会员系统的开发(上)会员系统的开发(上)PHP100PHP100视频教程视频教程还有什么疑问可以到 也可以以发送邮件到 感谢收看本次教程!本次演讲老师:张恩民 .271PHP100PHP100视频教程视频教程演讲老师:张恩民 官方网站:学习重点会员系统简单的多层处理和状态(第52讲) PHP+MY
213、SQL会员系统的开发(下).272PHP100PHP100视频教程视频教程(第52讲) PHP+MYSQL会员系统的开发(下)最高权限顺势级别多层处理次一级次二级次三级无交叉,实现顺序权限控制,可实现多层,也就是上一层永远大于下一层的权限,常用在留言板,CMS、后台论坛等程序当中,不适合在ERP,OA等类型系统中使用设置技巧: 为了实现权限的无限层级配置,最高层应使用最小值来做权限标志位,方便下行可用无线累计的空间.273PHP100PHP100视频教程视频教程(第52讲) PHP+MYSQL会员系统的开发(下)会员登录超时mktime(int hour, int minute, int se
214、cond, int month, int day, int year, int is_dst )通过动作时间,如果动作时间超时便踢出!使用mktime是个很好的时间计算函数可以方便的计算时间差。最小单位是秒。实例操作.274(第第5252讲)PHP+MYSQLPHP+MYSQL会员系统的开发(下)会员系统的开发(下)PHP100PHP100视频教程视频教程还有什么疑问可以到 也可以以发送邮件到 感谢收看本次教程!本次演讲老师:张恩民 .275PHP100PHP100视频教程视频教程演讲老师:张恩民 官方网站:学习重点1、PHP注入的基本原理2、防止注入的几种办法3、PHP其他地方安全设置(第
215、53讲) PHP如何防止注入及开发安全.276PHP100PHP100视频教程视频教程(第53讲) PHP如何防止注入及开发安全1、PHP注入的基本原理 程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。 受影响的系统:对输入的参数不进行检查和过滤的系统 SQL注入过程 正常来讲,我们通过地址接收一些必要的参数如: PHP100.php?id=2 页面中我们会使用 2 写入到SQL语句中 正
216、常情况:Select * From Table where id=2如果我们对SQL语句熟悉,就知道2 我们可以替换成我们需要的SQL语句如:and exists (select id from admin) .277PHP100PHP100视频教程视频教程(第53讲) PHP如何防止注入及开发安全2、防止注入的几种办法其实原来就是我们需要过滤一些我们常见的关键字和符合如:Select,insert,update,delete,and,*,等等 function inject_check($sql_str) return eregi(select|insert|update|delete|/*
217、|*|./|./|union|into|load_file|outfile, $sql_str); / 进行过滤例子或者是通过系统函数间的过滤特殊符号Addslashes(需要被过滤的内容).278PHP100PHP100视频教程视频教程(第53讲) PHP如何防止注入及开发安全3、PHP其他地方安全设置1、register_globals = Off 设置为关闭状态2、SQL语句书写时尽量不要省略小引号和单引号Select * From Table Where id=2 (不规范)Select * From Table Where id=2 (规范)3、正确的使用 $_POST $_GET
218、$_SESSION 等接受参数,并加以过滤4、提高数据库命名技巧,对于一些重要的字段可根据程序特点命名5、对于常用方法加以封装,避免直接暴露SQL语句.279(第第53讲讲)PHP如何防止注入及开发安全如何防止注入及开发安全PHP100PHP100视频教程视频教程还有什么疑问可以到 也可以以发送邮件到 感谢收看本次教程!本次演讲老师:张恩民 .280PHP100 视频教程视频教程演讲老师:张恩民 官方网站:学习重点1、mod_rewrite 简介和配置2、mod_rewrite 规则的使用3、mod_rewrite 规则修正符(第54讲) Apache Rewrite 拟静态配置.281PH
219、P100 视频教程视频教程(第54讲) Apache Rewrite 拟静态配置1、mod_rewrite 简介和配置Rewirte主要的功能就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范。平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等如一个普通访问地址为 */php100.php?id=2可以转成: */PHP100_2.html或转成: */PHP100_2/Apache配置:支持httpd.conf 配置和目录 .htaccess配置启用rewrite# LoadModule rewrite_module modules/mod_rewrite.so去除前面的
220、 #LoadModule rewrite_module modules/mod_rewrite.so启用.htaccessAllowOverride None 修改为: AllowOverride All.282PHP100 视频教程视频教程(第54讲) Apache Rewrite 拟静态配置2、mod_rewrite 规则的使用RewriteEngine onRewriteCond %HTTP_HOST ! NC RewriteRule /(.*) http:/ L启动rewrite引擎判断主机跳转到RewriteEngine onRewriteRule /test(0-9*).html$
221、 /test.php?id=$1 RewriteRule /new(0-9*)/$ /new.php?id=$1 R启动rewrite引擎跳转到.283PHP100 视频教程视频教程(第54讲) Apache Rewrite 拟静态配置3、mod_rewrite 规则修正符1) R 强制外部重定向2) F 禁用URL,返回403HTTP状态码。3) G 强制URL为GONE,返回410HTTP状态码。4) P 强制使用代理转发。5) L 表明当前规则是最后一条规则,停止分析以后规则的重写。6) N 重新从第一条规则开始运行重写过程。7) C 与下一条规则关联如果规则匹配则正常处理,以下修正符无
222、效8) T=MIME-type(force MIME type) 强制MIME类型9) NS 只用于不是内部子请求10) NC 不区分大小写11) QSA 追加请求字符串12) NE 不在输出转义特殊字符 %3d$1 等价于 =$1.284还有什么疑问可以到 本次演讲老师:张恩民 感谢收看 PHP100视频教程!PHP100 视频教程视频教程.285PHP100 视频教程视频教程演讲老师:张恩民 官方网站:学习重点1、PDO 简介 和 配置2、PDO 如何连接 MYSQL3、PDO 常用方法及其使用(第55讲) PHP5中使用PDO连接数据库.286PHP100 视频教程视频教程(第55讲)
223、PHP5中使用PDO连接数据库1、PDO 简介 和 配置PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dll、php_pgsql.dll、php_mssql.dll、php_sqlite.dll等等PHP6中也将默认使用PDO的方式连接,mysql扩展将被作为辅助PHP.iniextension=php_pdo.dllextension=php_pdo_mysql.dllextension=php_pdo_pgsql.dll
224、extension=php_pdo_sqlite.dllextension=php_pdo_mssql.dllextension=php_pdo_odbc.dllextension=php_pdo_firebird.dll 重启web选择需要启用的PDO去除前面的#.287new PDO(“连接信息”, root, , array(PDO:ATTR_PERSISTENT = true);PHP100 视频教程视频教程(第55讲) PHP5中使用PDO连接数据库2、PDO 如何连接new PDO(mysql:host=localhost;dbname=php100,root, “ );数据库类型
225、连接主机连接的数据库用户和密码默认这个不是长连接,如果需要数据库长连接,需要最后加一个参数:array(PDO:ATTR_PERSISTENT=true)变成这样:.288PHP100 视频教程视频教程(第55讲) PHP5中使用PDO连接数据库3、PDO 常用方法及其使用PDO:query()主要是用于有记录结果返回的操作,特别是SELECT操作PDO:exec() 主要是针对没有结果集合返回的操作,如INSERT、UPDATE等操作PDO:lastInsertId() 返回上次插入操作,主键列类型是自增的最后的自增ID PDOStatement:fetch() 是用来获取一条记录 PDOS
226、tatement:fetchAll()是获取所有记录集到一个中 $rs=$db-query(SELECT*FROMPHP100);while($row=$rs-fetch()print_r($row);例.289还有什么疑问可以到 本次演讲老师:张恩民 感谢收看 PHP100视频教程!PHP100 视频教程视频教程.290PHP100 视频教程视频教程演讲老师:张恩民 官方网站:学习重点1、制作PHP安装程序的原理和步骤2、制作安装用到的PHP函数3、制作安装的注意事项(第56讲) 制作PHP安装程序的原理和步骤.291PHP100 视频教程视频教程(第56讲) 制作PHP安装程序的原理和步骤
227、1、制作PHP安装程序的原理和步骤检查目录或文件的权限修改或填加配置文件检查配置文件正确性导入数据库锁定或删除安装文件原理: 其实PHP程序的安装原理无非就是将数据库结构和内容导入到相应的数据库中,从这个过程中重新配置连接数据库的参数和文件,为了保证不被别人恶意使用安装文件,当安装完成后需要修改安装文件。.292PHP100 视频教程视频教程(第56讲) 制作PHP安装程序的原理和步骤2、制作安装用到的PHP函数is_writable() 检查文件是否可写,用来判断文件权限,同类函数还有is_readable() 检查文件是否可读,返回布尔值is_writable(“data/config.p
228、hp”);fopen () 文件操作函数,打开一个文件或新建fwrite () 文件操作函数,写入内容到文件rename() 文件操作函数,给文件改名.293PHP100 视频教程视频教程(第56讲) 制作PHP安装程序的原理和步骤3、制作安装的注意事项1、对文件权限进行检查和相关文件夹,如缓存,生成文件,配置文件2、安装文件尽可能独立,可删除,可改名。3、数据库导入时,需检查: a、检查是否有建立数据库的权限 b、是否同名数据库的存在 c、考虑到数据库导入的大小是否分段处理4、检查配置环境,各种模块的支持情况,如:gd2, pdo,rewirte等.294还有什么疑问可以到 本次演讲老师:张
229、恩民 感谢收看 PHP100视频教程!PHP100 视频教程视频教程.295PHP100 视频教程视频教程演讲老师:张恩民 官方网站:学习重点1、PHP备份数据库的原理2、PHP中mysql相关函数3、备份时候的注意事项(第57讲) PHP备份数据库的原理和方法.296PHP100 视频教程视频教程(第57讲) PHP备份数据库的原理和方法1、PHP备份数据库的原理查找所有表查找所有字段查找所有数据生成SQL需要列出所有字段名,字段类型等相关信息读取数据出来注意特殊符号的转换addslashes()把数据格式化生成对应的SQL通过相关函数输出SQL相关信息,并格式化后生成文件,保存!.297P
230、HP100 视频教程视频教程(第57讲) PHP备份数据库的原理和方法2、PHP中mysql相关函数mysql_list_tables() 表查询函数,类似mysql_query() 函数mysql_fetch_field() 字段信息函数,返回句柄Name 字段的名称Table 字段所属数据表的名称Type 字段的类型max_length 字段的最大长度not_null 字段是否不能为空,是,则这一项的值为1primary_key 字段是否为主键,是,则这一项的值为1unique_key 字段是否为unique键,是,则这一项的值为1multiple_key 字段是否不为unique键,是,
231、则这一项的值为1Numeric 字段是否为数字型,是,则这一项的值为1Blob 字段是否为blob型,是,则这一项的值为1Unsigned 数字型的字段是否为unsigned的,是,则这一项的值为1Zerofill 数字型的字段是否为zerofilled的,是,则这一项的值为1.298PHP100 视频教程视频教程(第57讲) PHP备份数据库的原理和方法CREATE TABLE help_category ( help_category_id int(5) unsigned NOT NULL, name char(64) NOT NULL)3、备份时候的注意事项 例子:1、注意数据库的大小,
232、过大或者过多的表分段处理2、生成的SQL文件名或者存放不易被猜到3、备份生成文件可以表或者自动为单位保存4、可以使用ZIP组件压缩生成的文件以便保持.299还有什么疑问可以到 本次演讲老师:张恩民 感谢收看 PHP100视频教程!PHP100 视频教程视频教程.300PHP100 视频教程视频教程演讲老师:张恩民 官方网站:学习重点1、企业网站都有哪些基本功能2、如何写企业网站评估报告3、神奇的BIWEB积木式建站系统(第58讲) 快速设计一个企业网站之BIWEB.301PHP100 视频教程视频教程(第58讲) 快速设计一个企业网站之BIWEB企业网站单页发布程序新闻发布针对一些企业简介、联
233、系方式、荣誉等无需分页,只需单页发布即可支持自定义分类,新闻发布需要支持图片上传、后台排版、关键等内容产品展示支持自定义分类,多图上传,介绍,单价等相关字段订单功能对于产品展示或商品出售等做订单后台统计功能留言反馈一个企业网站必须的功能其他:搜索,后台管理,会员管理,采集,生成静态,SEO优化等1、企业网站都有哪些基本功能.302PHP100 视频教程视频教程(第58讲) 快速设计一个企业网站之BIWEB2、如何写企业网站评估报告一个专业的评估报告对你能否接下单子很重要描述模块根据需求根据地区和个人团队情况填写.303PHP100 视频教程视频教程(第58讲) 快速设计一个企业网站之BIWEB
234、3、神奇的BIWEB积木式建站系统BIWEB 网务通商务智能网站系统,设计初衷就是应用于高负载大流量的大型web项目,其结构灵活多变,可以非常方便的做到分压、分流和负载均衡,是web项目首选的建站系统。通过BIWEB ,可以方便的搭建自己想要的各种web应用,并可在投入最小的硬件成本下负载最大的流量,做到性价比最高。特点: 1、非传统的企业网站源码,他是提供建站底层模块 2、完善的底层框架,可以为开发节省前期很多准备工作 3、 添 加 栏 目 只 需 要 替 换 修 改 即 可 完 成 4、 支 持 多 种 缓 存 机 制 , 提 高 网 站 系 统 的 速 度 5、 提 供 了 各 类 的
235、户 外 接 口 ,GGsitemap 等让我们来体验演示一下吧.304还有什么疑问可以到 本次演讲老师:张恩民 感谢收看 PHP100视频教程!PHP100 视频教程视频教程.305PHP100 视频教程视频教程演讲老师:张恩民 官方网站:学习内容1、BIWEB的使用常见问题解答2、BIWEB目录结构和数据库分析3、栏目如何更加独立和使用自定义内容4、从BIWEB我们学到了什么(第59讲) 关于BIWEB常见问题和结构分析.306PHP100 视频教程视频教程(第59讲) 关于BIWEB常见问题和结构分析1、BIWEB的使用常见问题解答(1)为什么安装时白页或出错? 答:是否开启了PDO和PD
236、O_Mysql 模块,还有的时候二次安装导致(2)为什么修改了文件后会乱码? 答:因为BIWEB全站使用的是UFT8模式,所以如果直接使用记事本打开修 改会导致编码错误,大家可以使用EditPlus 或其他的编译工具。 (3)为什么我增加了新的模块后导航却没有? 答: 这是因为BIWEB的导航暂时还不是智能出现的,需要手工增加 (4)BIWEB是否适合英文网站的开发和支持PHP5.3? 答:同上面所说,因为BIWEB使用的是UTF8编码所以开发英文网站老外看 是没有问题的,新版的BIWEB支持PHP5.3。.307PHP100 视频教程视频教程(第59讲) 关于BIWEB常见问题和结构分析2、
237、BIWEB目录结构和数据库分析红色目录代表系统框架重要目录,紫色目录代表功能栏目目录,黑色目录代表系统使用目录。红色目录中,主要看整站配置文件目录和整站可控配置文件目录,重点记住BIWEB系统中重要的配置数组,系统公共配置数组都是arrG开头的,栏目配置数组以arrM开头的。紫色目录中,重点看新闻栏目,理解新闻栏目中的配置和程序关系。黑色目录中,全部不用看,都是系统自用目录。数据库一句话概括: 前缀_模块名 如 : PHP100_news一个模块对应一张表很容易找到 .308PHP100 视频教程视频教程(第59讲) 关于BIWEB常见问题和结构分析3、栏目如何更加独立和使用自定义内容其实每个
238、模块都可以自定义数据库,独立配置一些参数。这样使每个栏目更加独立常见的配置文件在模块下面的config目录下面:var.inc.php 一般配置数据库信息type.inc.php 一般配置分类信息,以数组的形式存在private.inc.php 一般改模块的私有变量信息都在这里,如smarty 、分页等config.inc.php 一般是模块中需要调用的文件或内容4、从BIWEB我们学到了什么俗话说见多识广,虽然这个程序不能说是完美的程序,但从结构和代码的规范程度是值得我们学习的,尤其是在扩展性上。初学者写全站可能考虑不到这么大的扩展型,但要知道这是完全可以实现的,所以这也是我们写程序的方向。
239、下面的课我讲一些开发中常用的规范。.309PHP100 视频教程视频教程演讲老师:张恩民 官方网站:开发规范1、PHP中对各类变量内容的命名规范2、PHP中函数、符号、运算写作规范3、PHP中各类注释规范4、数据库设计与操作规范(第60讲) PHP与数据库代码开发规范.310PHP100 视频教程视频教程(第60讲) PHP与数据库代码开发规范1、PHP中对各类变量内容的命名规范(1)目录命名、文件命名、局部变量命名:使用英文名词、动词,以下划线作为单词的分隔,所有字母均使用小写目录:upload、templates、install、manage文件:index.php 、 register.
240、php 、 config.php变量:$user , $pay_time , $pay_del_cont (2)全局常量命名:使用英文名词、动词,所有字母都使用大写,以下划线分隔每个单词define( WEBSITE_NAME, 名称 );define( WEBSITE_URL, 地址 ).311PHP100 视频教程视频教程(第60讲) PHP与数据库代码开发规范1、PHP中对各类变量内容的命名规范(3)数组变量命名:英文名词、动词,以下划线作为分隔,所有字母均使用小写以array结束$scope_array = array();$book_id_array = array();(4)对象变
241、量命名:英文名词、动词,以下划线作为分隔,可以完整采用类名或是简化类名,但是必须明确知道是什么类,所有字母均使用小写,在变量后加上_obj$user_obj = new userAccount();$pay_obj = new payOrder();(5)类的命名:使用英文名词,以大写字母作为词的分隔,其他的字母均使用小写,名词的首个字母使用小写,不使用下划线class userAccount .312PHP100 视频教程视频教程(第60讲) PHP与数据库代码开发规范1、PHP中对各类变量内容的命名规范(6)方法命名:使用英文名词、动词,以下划线作为单词的分隔,所有字母均使用小写class
242、 userAccount public $name_account=; function is_account_ok() . function add_account() . 关于对象属性的命名同理!.313PHP100 视频教程视频教程(第60讲) PHP与数据库代码开发规范2、PHP中函数、符号、运算写作规范(1)if语句大括号规则:将大括号放置在关键词后方使用IF语句尽量使用大括号if ( $condition ) .else if ( $condition1 ) .else .尽可能避免右边使用方式.314PHP100 视频教程视频教程(第60讲) PHP与数据库代码开发规范2、PHP
243、中函数、符号、运算写作规范(2)、switch规则 每个case块结束处必须加上break,而default总应该存在处理未知情况,例:switch( $condition ) case user: . break; case type: . break; default: . break;(3)、声明定位规则声明代码块需要对齐,且初次使用变量时需要初始化$tableName= ;$databaseObject= ;尽量不使用以下方式,例:$tableName;$accuntName = ;$databaseObject = ;.315PHP100 视频教程视频教程(第60讲) PHP与数据库
244、代码开发规范2、PHP中函数、符号、运算写作规范html的form表单各个元素名称与数据库字段尽量保持一致。不要采用缺省方法测试非零值,必须显式测试,例:if ( $name_pay_into != false ) .else .*尽可能使用单引号而不是双引号,在需要加入变量或是写sql语句除外。*php文件中尽可能不出现html语句,如果实在无法解决尽量少用,考虑到模板的兼容性,html文件中尽可能避免出现php语句。*通常每个方法只执行一项逻辑动作事务,所以对它们的命名应该清楚的说明它们是做什么的:用email_error_check()代替error_check()。请注意命名不要与系统
245、方法冲突。.316PHP100 视频教程视频教程(第60讲) PHP与数据库代码开发规范3、PHP中各类注释规范/* 分页预处理函数* sqlSQL语句* page当前页数* limit每页显示的数量* maxs查询总数*/function limit($sql,$page=0,$limit=10,$maxs=) /用户检测if( $check_obj-username( $username ) = true ) $user_name = $_GETuser; /获取用户信息.317PHP100 视频教程视频教程(第60讲) PHP与数据库代码开发规范4、数据库设计与操作规范数据库规范数据库名
246、称应该由概述项目内容的小写英文名词组成,以下划线分隔单词,避免跨平台时可能出现的大小写错误。数据表名称应该由物件对象名称的小写英文名词组成(尽可能对应系统中的业务类名称),以下划线分隔单词,避免跨平台时可能出现的大小写错误。数据表的字段应避免使用varchar、text等不定长的类型,时间信息的字段使用int类型存储。查询数据连接多表时各资源应该使用全名称,即tableName.fieldName,而不是fieldName。SQL语句应尽可能符合ansi92标准,避免使用特定数据库对SQL语言的扩充特性。.318PHP100 视频教程视频教程演讲老师:张恩民 官方网站:开发规范1、设计新闻系统
247、简单的UML模2、设计所需的环境、模块、模板样式3、数据库UML设计和创建数据库结构(第61讲) PHP+MySQL新闻系统的开发(1).319PHP100 视频教程视频教程演讲老师:张恩民 官方网站:后台开发本讲重点是熟练运用类、数组、表单、循环完成后台管理的基本开发和操作。开发:后台配置模块、新闻分类模块(第63讲) PHP+MySQL新闻系统的开发(3).320PHP100 视频教程视频教程演讲老师:张恩民 官方网站:后台开发本讲重点是熟练运用类、数组、表单、循环完成后台管理的基本开发和操作。开发:后台配置模块、新闻分类模块(第64讲) PHP+MySQL新闻系统的开发(4).321PH
248、P100 视频教程演讲老师:张恩民 官方网站:后台开发新闻后台:添加新闻,新闻列表,编辑新闻学习重点:灵活运用,插 查 删 改 功能(第65讲) PHP+MySQL新闻系统的开发(5).322演讲老师:张恩民 官方网站:(第65讲) PHP+MySQL新闻系统的开发(5)admin_news_add.phpadmin_news_list.phpadmin_news_edit.php新闻编辑,通过ID获取新闻内容并更新添加新闻,分别添加到新闻基础表和内容表主要学习添加完后获得最后id新闻列表,复合查询、列表分页,删除等操作重点:灵活运用,插查删改功能PHP100 视频教程.323PHP100 视
249、频教程演讲老师:张恩民 官方网站:前台的开发主要学习如何使用Smarty模板开发前台应用(第67讲) PHP+MySQL新闻系统的开发(7).324PHP100 视频教程(第67讲) PHP+MySQL新闻系统的开发(7)注意事项: 1、配置模板图片,Css路径 2、尽可能的将变量写入数组 3、模板文件名尽可能的与PHP文件相关 4、为了方便使用书写通用调用方法,将header.php footer.php独立出来.325PHP100 视频教程演讲老师:张恩民 官方网站:前台的开发主要学习如何使用Smarty模板开发前台应用(第68讲) PHP+MySQL新闻系统的开发(8).326PHP10
250、0 视频教程演讲老师:张恩民 官方网站:前台的开发主要学习如何使用Smarty模板开发前台应用(第69讲) PHP+MySQL新闻系统的开发(9).327PHP100 视频教程演讲老师:张恩民 官方网站:前台的开发(第70讲) PHP5.3.1+Apache+Mysql配置1、熟悉PHP 5.3.1 几个新版本的区别2、Apache PHP Mysql 之间的关系3、熟悉Apache PHP 重要的几个配置文件4、实际操作在windows下搭配WAMP环境.328PHP100 视频教程(第70讲) PHP5.3.1+Apache+Mysql配置1、熟悉PHP 5.3.1 几个新版本的区别官网下
251、载地址: PHP 5.3.1 VC9 VC6 的区别 VC9 是专门为IIS定制的脚本支持最新的微软组件从而提高效率 VC6 是为了其他WEB服务软件提供的脚本,如 Apache 在VC9和VC6当中又分为: Non Thread Safe 和 Thread Safe 先从字面意思上理解,Thread Safe是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。Non Thread Safe是非线程安全,在执行时不进行线程(Thread)安全检查。PHP 5.3.1 VC9 Non Thread SafePHP 5.3.1 VC9
252、Thread SafePHP 5.3.1 VC6 Non Thread SafePHP 5.3.1 VC6 Thread Safe.329PHP100 视频教程(第70讲) PHP5.3.1+Apache+Mysql配置3、Apache PHP Mysql 之间的关系ApachePHPMysql载入PHP脚本执行PHP脚本连接mysql.330PHP100 视频教程(第70讲) PHP5.3.1+Apache+Mysql配置3、熟悉Apache PHP 重要的几个配置文件Apache配置文件 httpd.confLoadModule php5_module C:/WAMP/PHP5.3.1/p
253、hp5apache2_2.dllLoadModule php5_module C:/WAMP/PHP5.3.1/php5apache2_2.dllPHPIniDir C:/WAMP/PHP5.3.1PHPIniDir C:/WAMP/PHP5.3.1AddType application/x-httpd-php .php .phtmlAddType application/x-httpd-php .php .phtmlPHP配置文件 PHP.iniphp.ini-development php.ini-development 、 php.ini-production php.ini-produ
254、ction 修改成修改成 php.ini php.ini 文件即可文件即可extension_dirextension_dir,设置为,设置为extension_dir = C:/WAMP/PHP5.3.1/extextension_dir = C:/WAMP/PHP5.3.1/ext载入PHP脚本配置PHP.ini的目录支持解析PHP扩展.331PHP100 视频教程(第70讲) PHP5.3.1+Apache+Mysql配置4、实际操作在windows下搭配WAMP环境Apache 2.2.14 安装版PHP 5.3.1 VC6 x86 Thread Safe 解压版ZipMysql 5.
255、0.x 安装或解压版都可以,只要能正常启动.332PHP100 视频教程演讲老师:张恩民 官方网站:重点内容(第71讲) PHP SQLite 的使用和配置1、PHP 中 SQLite 简介 和 特点2、在PHP中如何开启使用 SQLite3、创建SQLite 数据库的两种方法4、SQLiteManager 简单实用和配置.333PHP100 视频教程(第71讲) PHP SQLite 的使用和配置1、PHP 中 SQLite 简介 和 特点SQLite是一款轻型的数据库,是遵守ACID标准,它占用资源非常的低,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主
256、流的操作系统,同时能够支持很多程序语言,如C、PHP、Java等PHP + SQLiteASP + Access类似组合注:SQLite 的数据库是个独立的文件,和程序一样保持在WEB目录下即可特点: 1、SQLite数据库足够小, 大致3万行C代码, 共计250K左右 2、配置简单,支持各类平台:Windows/Linux/Unix/MAC 3、最大的数据库支持2T - 1T = 1024G 4、SQLite支持无数据库类型 (为提高效率不建议) 5、SQLite完全开源,懂得C的朋友可以下载源码完善它.334PHP100 视频教程(第71讲) PHP SQLite 的使用和配置2、在PHP
257、中如何开启使用 SQLite在PHP 5.2.x 以后自带了 SQLtie PDO数据库功能,只需要在配置中开启即可PHP.ini ;extension=php_pdo_sqlite.dll在PHP 5.1.x 以后自带了 SQLtie 数据库功能,只需要在配置中开启即可PHP.ini ;extension=php_sqlite.dll在PHP 5.1.x 以后自带了 SQLtie 数据库功能,只需要在配置中开启即可PHP.ini ;extension=php_sqlite.dll注: 使用WAMP的朋友直接在配置中开启即可.335PHP100 视频教程(第71讲) PHP SQLite 的使
258、用和配置3、创建SQLite 数据库的两种方法1、使用PHP函数直接开启建立sqlite_open (php100.db); 使用物理地址路径数据库存在直接打开,无则新建2、通过SQLiteManager来创建管理 SQLite 数据库文件 使用 WAMPserver 5 自带,自己配置的可以到 PHP 下载.336PHP100 视频教程(第71讲) PHP SQLite 的使用和配置4、SQLiteManager 简单实用和配置明确几个定义 1、SQLiteManager与PHPmyadmin不同,需要添加管理的数据库 2、Windows下使用添加路径需要将 X: * 改为 X:/*/* 3
259、、 创建数据库的时候需要指定SQLite 数据库文件存放的路径 .337PHP100 视频教程(第71讲) PHP SQLite 的使用和配置感谢收看PHP100视频教程 .338PHP100 视频教程演讲老师:张恩民 官方网站:重点内容(第72讲) PHP + SQLite 常用函数与应用1、熟悉SQLite常用函数2、制作一个简单的SQLite例子.339PHP100 视频教程(第72讲) PHP + SQLite 常用函数与应用1、熟悉SQLite常用函数sqlite_open(数据库名,模式,错误信息)有则连接,无则自动建立对数据库操作的读写模式默认0666返回数据库错误信息sqlit
260、e_query(数据库连接参数,SQL参数)所要操作的数据库要执行的SQL语句打开数据库数据库执行.340PHP100 视频教程(第72讲) PHP + SQLite 常用函数与应用1、熟悉SQLite常用函数sqlite_fetch_array(SQL返回句柄,返回索引)数据库指针sqlite_num_rows(SQL返回句柄)统计条数sqlite_last_insert_rowid(数据库连接参数)最后一条IDSQLITE_ASSOC 只会返回关联索引(有名称字段)而SQLITE_NUM 只会返回数字索引(有序字段数)。SQLITE_BOTH 会同时返回关联和数字索引。 SQLITE_BO
261、TH 是本函数的默认值.341PHP100 视频教程(第72讲) PHP + SQLite 常用函数与应用2、制作一个简单的SQLite例子.342PHP100 视频教程(第72讲) PHP + SQLite 常用函数与应用感谢收看PHP100视频教程 .343PHP100 视频教程演讲老师:张恩民 官方网站:重点内容(第73讲) PHP MemCached高级缓存配置 1、Memcache 相关介绍2、Memcache Win32 的安装和PHP中的配置3、PHP中测试 Memcache功能 .344PHP100 视频教程(第73讲) PHP MemCached高级缓存配置1、Memcach
262、e 相关介绍使用Memcache的网站一般流量都是比较大的,为了缓解数据库的压力,让Memcache作为一个缓存区域,把部分信息保存在内存中,在前端能够迅速的进行存取。memcache是一个高性能的分布式的内存对象缓存系统,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等DB数据源usermemcached.345PHP100 视频教程(第73讲) PHP MemCached高级缓存配置2、Memcache Win32 的安装和PHP中的配置下载:Memcache Win32 www.jehiah.cz/projects/memcached-win32/1、解压到目录
263、:c:mem (自定义,任何目录)2、c:memmemcached.exe -d install 3、c:memmemcached.exe -d start (启动服务)4、telnet 127.0.0.1 11211 (使用telnet连接测试是否成功)5、输入:stats 命令查看基本信息.346PHP100 视频教程(第73讲) PHP MemCached高级缓存配置2、Memcache Win32 的安装和PHP中的配置PHP中配置 Memcache 1、下载:php_memcache.dll 组件 (WAMP自带了)2、复制 php_memcache.dll 到指定的组件目录,默认在
264、 phpext3、在PHP.ini 加入一句话:extension=php_memcache.dll4、重启WEB服务,使用 phpinfo() 函数查看启用情况.347PHP100 视频教程(第73讲) PHP MemCached高级缓存配置3、PHP中测试 Memcache功能 $mem = new Memcache;$mem-connect(127.0.0.1, 11211) or die (连接失败);$mem-getVersion();实例化服务器地址端口号获得版本信息 ,可使用echo 打印.348PHP100 视频教程(第73讲) PHP MemCached高级缓存配置感谢收看P
265、HP100视频教程 .349PHP100 视频教程演讲老师:张恩民 官方网站:重点内容(第74讲) PHP MemCached 高级缓存应用 1、Memcache WEB 中操作流程2、认识一个 Memcache 的方法使用3、Memcache 有哪些常用方法4、实际操作一个Memcache例子.350PHP100 视频教程(第74讲) PHP MemCached 高级缓存应用1、Memcache WEB 中操作流程.351PHP100 视频教程(第74讲) PHP MemCached 高级缓存应用2、认识一个 Memcache 的方法使用$memcache = new memcache;$m
266、emcache-connect(127.0.0.1, 11211) or die (连接失败);$memcache-set(Key, Value, Zip, Time);$val = $memcache-get(Key);实例化connect方法连接set方法添加一个缓存值(键名,键值,是否压缩,保持时间)get通过键名,获取缓存中的内容.352PHP100 视频教程(第74讲) PHP MemCached 高级缓存应用Memcache:add 添加一个值,如果已经存在,则返回falseMemcache:addServer 添加一个可供使用的服务器地址Memcache:close 关闭一个Me
267、mcache对象Memcache:connect 创建一个Memcache对象memcache_debug 控制调试功能Memcache:decrement 对保存的某个key中的值进行减法操作Memcache:delete 删除一个key值Memcache:flush 清除所有缓存的数据Memcache:get 获取一个key值Memcache:getExtendedStats 获取进程池中所有进程的运行系统统计Memcache:getServerStatus 获取运行服务器的参数Memcache:getStats 返回服务器的一些运行统计信息Memcache:getVersion 返回运行
268、的Memcache的版本信息Memcache:increment 对保存的某个key中的值进行加法操作Memcache:pconnect 创建一个Memcache的持久连接对象Memcache:replace R对一个已有的key进行覆写操作Memcache:set 添加一个值,如果已经存在,则覆写Memcache:setCompressThreshold 对大于某一大小的数据进行压缩Memcache:setServerParams 在运行时修改服务器的参数3、Memcache 有哪些常用方法.353PHP100 视频教程(第74讲) PHP MemCached 高级缓存应用.354PHP100 视频教程(第74讲) PHP MemCached 高级缓存应用感谢收看PHP100视频教程 .355