《最新PHP基础知识点.doc》由会员分享,可在线阅读,更多相关《最新PHP基础知识点.doc(105页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-datePHP基础知识点第一单元【php入门】一、LAMP网站介绍: 1. 开发语言结构 B/S结构和C/S结构 PHP属于B/S结构 我们将来的工作:基于PHP的WEB开发工程师,属于B/S结构 三、HTTP协议: HTTP协议是超文本传输协议。默认端口是80,一般请求方式有GET和POST,特点是无状态。 PHP是超文本预处理器(动态生成超文本的) HTML是就是超文本标
2、记语言。 URL是统一资源定位符,格式:协议名:/主机名:端口/目录./文件名 下面就是一个URL地址(网址) http:/127.0.0.1/shop/home/index.php 四、动态网址开发所需的WEB构件: 1. 浏览器:IE、谷歌、火狐。 2. 超文本标记语言HTML 3. CSS样式表 4. 客户端脚本程序:JavaScript 5. WEB服务器:apache 6. 服务器端脚本程序:PHP,ASP.net JavaEE 7. 数据库:MySQL五、网站开发平台介绍 1. ASP.NET 使用使用C#语言,基于微软平台的开发 特点:开发速度快,容易上手,开发成本低,移植性差(
3、仅限Windows系统),相对稳定性差。 2. JavaEE 是使用Java语言加框架开发,属于Sun的 特点:开发速度慢,相对复杂,成本高,但是可移植,相对安全。运行稳定。 3. LAMP 使用php语言开发 特点:开发速度开,相对简单,成本低,可移植,相对安全。维护方便。第一单元【php入门】 a、什么是php b、php的优势是什么 c、php能做什么 d、php的历史 f、php的简单语法规则(大小写、注释、空白和换行、分号使用) g、程序架构 b/s(browser/server)、c/s(client/server) h、开发环境搭建 1.php简单概述 2.b/s与c/s简单比较
4、,区别: -a、运行环境不同(广域网、局域网) -b、安全级别不同(低/高) -c、用户群不同(全部用户/局部用户) -d、系统升级不同(无缝升级/整体升级) -e、用户开启不同(浏览器/客户端软件) -f、侧重点不同(信息流/用户体验) 比如:b/s就是网上的微博、博客;c/s就是在网吧打的网络游戏(奇迹、传奇等) 3.php是什么:运行在服务器端的脚本语言 -Hypertext Preprocessor -personal home page 4.php语言能做什么 -图形化用户界面程序(开心网、赶集网、sina等等 phpcms、dedecms、帝国cms、drupalcms) -服务器
5、端运行脚本程序 5.简单特点: -a、大小写(自己定义的类名和函数名是不区分的) -b、分号 -c、程序的注释 -d、空白和换行 6.wamp集成环境安装 7.php的开发框架有:yii、cakephp、CodeIgniter、zendframework等 php的cms有:phpcms、dedecms、帝国、drupal、joomla等 * *第二单元【php语法基础】 1.变量的定义 -美元符号$加上变量名称,例如$str。 -变量名称命名规则:是由字母和下划线开始,后接任意数量的字母、数字、下划线 2.可变变量 例如: $a = hello; 则$a 和 $hello 同理 3.数据类型
6、: 四个标量类型(int,string,float,boolean) 两个复合类型(array,object) 两个资源类型(resource,NULL) 4.什么是常量 常量的值是固定的,不能随便变化的,例如圆周率、系统里边的用户名、密码等等。 5.常量名的命名规则 没有美元符号$,名字的命名规则和变量名一样,按照习惯都是大写的 6.常量的定义 define(CIRCLE,3.14159); defined(CIRCLE);/判断是否有定义常量CIRCLE 7.常量的使用,直接引用 例如可以这样使用上边的变量echo CIRCLE; 还可以使用php系统里边自带的常量例如 echo _FIL
7、E_; echo _LINE_; 8.变量和常量的区别 a.常量前面没有美元符号($); b.常量只能用 define( ) 函数定义,而不能通过赋值语句; c.常量可以不用理会变量范围的规则而在任何地方定义和访问; d.常量一旦定义就不能被重新定义或者取消定义; e.常量的值只能是标量类型。 9.php外部变量$_POST、$_GET; 10.自定义函数 11.变量的能见度 12.函数参数传递(两种) 13.代码重用(include,require,include_once,require_once) 14.递归调用 15.运算符(算术、递增/递减、比较、逻辑、位、其他) 特殊运算符 . 是
8、连接符 .= 是连接赋值 屏蔽错误信息$link=mySQl_connect(主机,用户名,密码) ?: 三目运算符 16.流程控制(顺序、选择、循环) 作业,自己写一个函数,输入年份判断出当前输入参数是否是闰年 (能被4整除并且不能被100整除,或者能被400整除) * *第三单元【数组】 定义:具有相同类型和名称的变量的集合。 1.数组按照键名分索引和关联 2.数组赋值方式(一维、二维) 3.遍历数组方式: 遍历定义:沿着一定的路线,依次对数组里边的每个元素做一次且仅做一次访问。 foreach(数组 as 键名 = 值名) foreach(数组 as 值名) while(list(键名,
9、值名)=each(数组) while(list(,值名)=each(数组) 自学通过for方法遍历数组 $_arr = a; $_arr = b; $_arr = c; $_arr = d; for($i=0; $i0 1=1 2=2 3=3 2.在上一题的基础上写一个函数,要求输入两个正整数m,n, 经过处理返回一个索引数组,要求数组索引从n开始递增, 数组值从1开始一直递增到m,例如输入参数4,100则返回: Array 100=0 101=1 102=2 103=3 * *第四单元【字符串】 字符串:由0个或多个字符组成的有限序列。 1.字符串的三种定义方式(单引号、双引号、定界符) -
10、单引号定义(转义和) -双引号定义(转义n r t $ ) -定界符方法eof 2.函数部分 explode/implode substr()* str_replace/trim/ltrim/rtrim strchr(str, search)获得指定字符串最开始出现到字符串最后的内容 strrchr(str, search)获得指定字符串最后出现到字符串最后的内容 strpos(str, search)获得指定字符串最开始出现的位置 strrpos(str, search)获得指定字符串最后出现的位置 ucfirst(str)将字符串第一个字母大写 ucwords(str)将字符串的每个单词的
11、第一个字母大写 strlen(str)获得字符串长度 strcmp(str1, str2)比较两个字符串大小, 返回负数表示 str1 小于 str2; 返回正数表示 str1 大于 str2; 返回零表示二字符串相同 strtr()字符串翻译 -strtr(str, mode, replace) -strtr(str,array) strtolower 将字符串转化为小写 strtoupper 将字符串转化为大写 parse_url(str)解析完整的url转变为为数组 parse_str(str,out)解析请求字符串转变为数组 htmlspecialchars()转换html代码为实体代
12、码 printf/sprintf %b %d %c %x %s %f %X printf(格式化内容,具体信息); printf(%d%b%c,10,20,10) b 整数转成二进位。 c 整数转成对应的 ASCII 字符。 d 整数转成十进位。 * f 单倍精确度数字转成浮点数。 * o 整数转成八进位。 s 转成字符串。 * x 整数转成小写十六进位。 X 整数转成大写十六进位。 * *第五单元【表单处理】 表单在网页的作用不可小视,主要负责数据采集工作,比如可以采集用户名、密码、email邮箱等信息。 表单可以分为3部分: 表单标签: 表单域:文本框、密码框、下拉列表、单选框、复选框、文
13、本域、隐藏域、附件 表单按钮:submit reset $_GET $_POST 1.为什么要用表单,表单可以实现两个或多个页面之间传递数据。 2.制作一个表单(文本框、密码框、单选按钮、多选按钮、下拉菜单、文本域、隐藏域) 3.制作一个接收页面,用于接收表单数据 4.分别利用post和get两种方式进行表单数据传递 5.利用超链接方式进行get方式传送数据 作业: 进行表单验证 * *第六单元【其他常用函数】 date(format,timestamp)/格式化时间信息,并返回 date_default_timezone_set(asia/shanghai);/设置时区 time()/返回当
14、前时间戳信息 mktime(hour,minute,second,month,day,year) mktime(小时,分钟,秒,月,日,年)/取得一个日期的 Unix 时间戳 header()发送http头信息 /当前页面输出内容是html,编码为utf-8格式 header(content-type:text/html; charset=utf-8); /当前页面输出内容的格式是图片 header(content-type:image/png gif jpeg); /页面5秒后要跳转到新网址 header(refresh:5;url= /页面重定向 /window.location.href
15、= header(location: abs(-4.6)/取得绝对值信息 ceil(4.0)/向上取整 urlencode(str)替换所有非字母数字(-_.)的字符,变为%后面跟两位16进制数,空格变为+号(字母、数字、-、_、.不给替换) urldecode(str)对已%#编码的URL进行解析还原 max()/取得最大值 -echo max(1, 3, 5, 6, 7); / 7 -echo max(array(2, 4, 5); / 5 -echo max(0, 1hello); / 1hello -echo max(hello, 0); / hello -echo max(-1, h
16、ello); / hello -print_r(max(array(2, 4, 8), array(2, 5, 7); / array(2, 5, 7) -print_r(max(string, array(2, 5, 7), 42); / array(2, 5, 7)数组和非数组比较数组总认为最大 min()/取得最小值 mt_rand(65,94)/获得随机数 round()/四舍五入取整 flush()/输出准备区内容output_buffering=Off(php.ini) chr(mt_rand(65,90)随机获得字母 ord(chr(mt_rand(65,90)将字母转化为对应的
17、ascII码数字 basename(路径名)获得路径中文件名部分 d:/web/phpone/five/form.html * *第七单元【php连接mysql】 *mysql_connect(主机,用户名,密码) 打开一个到 MySQL 服务器的连接 *mysql_select_db(数据库,连接数据库资源) 选择 MySQL 数据库 *mysql_query(set names utf8);设定字符集 *mysql_close() 关闭 MySQL 链接 *mysql_query(语句) 发送并执行一条sql语句 *mysql_fetch_array(结果资源)从结果集中取得一行结果(索引
18、/关联数组) *mysql_fetch_assoc(结果资源)从结果集中取得一行结果(关联数组) mysql_fetch_row(结果资源)从结果集中取得一行结果(索引数组) mysql_fetch_object(结果资源)从结果集中取得一行结果(对象) mysql_errno()返回错误号码 *mysql_error()返回错误信息 *mysql_affected_rows()获得受影响的结果数目【增、删、改、查】 *mysql_num_rows(结果资源)用于计算查询结果中所得行的数目【查】 *mysql_insert_id()传回最近一次使用 INSERT 指令产生的自动增长 ID 值
19、mysql_result(结果集,索引行,字段)指定获取结果 mysql_free_result(结果资源)释放结果集 mysql_num_fields(结果资源)用于计算查询结果中所得列的数目 mysql_fetch_field(结果资源)从结果集中取得一列的结果,以对象形式返回 mysql_pconnect(主机,用户名,密码)永久连接数据库 mysql_connect(); 学习步骤: 1.建立一个数据库 班级号 2.数据库里边建立一个数据表 sw_user u_id int 主键、自增 u_name varchar(24) 姓名 u_psd varchar(128) 地址 u_sex
20、varchar(2) 性别 u_hobby varchar(32) 爱好 u_xueli varchar(8) 学历 u_introduce text 简介 u_itime datetime 注册时间CREATE TABLE sw_user ( u_id int(11) NOT NULL auto_increment COMMENT 自增id, u_name varchar(32) NOT NULL COMMENT 会员名, u_psd varchar(64) NOT NULL COMMENT 会员密码, u_sex varchar(4) NOT NULL COMMENT 性别, u_hobb
21、y varchar(32) NOT NULL COMMENT 爱好, u_xueli varchar(8) NOT NULL COMMENT 学历, u_introduce varchar(128) NOT NULL COMMENT 简介, u_itime datetime NOT NULL COMMENT 注册时间, PRIMARY KEY (u_id) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=会员表 AUTO_INCREMENT=1;insert into sw_user values (null,张三,123,男,篮球,足球,初中,我是张三,
22、now();insert into sw_user values (null,李四,456,女,旅游,看书,高中,我是李四,now();insert into sw_user values (null,王五,789,男,爬山,上网,大学,我是王五,now(); 3.实现通过html表单写入数据到数据库 u_id u_name u_psd u_sex u_hobby u_xueli u_introduce 1 张三 123 男 篮球,足球 初中 我是张三 2 李四 456 女 旅游,看书 高中 我是李四 3 王五 789 男 爬山,上网 大学 我是王五 4.(自选)将写入的数据展现到页面 * *
23、第八单元【留言板】 学习留言板目的: a、复习表单知识 b、复习数据库知识 c、可以对php编程有一个简单认识 本章重点: a、表单使用 b、数据库操作 c、post和get方式传值,$_POST $_GET d、隐藏域传值 e、外键使用 本章难点: a、外键使用 b、post和get方式传值 知识点: a、form b、$_POST $_GET使用 c、hidden d、html标签使用 f、javascript语言应用 g、表单验证 具体实现步骤: 1.在数据库建立两张表 sw_leave_word 和 sw_back_word (留言表和回复表) sw_leave_word: 字段 数据
24、类型 leave_id int 主键、自增 leave_title varchar(20) 标题 leave_content text 内容 leave_time datetime 添加时间 sw_back_word: back_id int 主键、自增 back_leave_id int 外键(留言id) back_content text 内容 back_time datetime 回复时间CREATE TABLE sw_leave_word ( leave_id int(11) NOT NULL auto_increment COMMENT 自增id, leave_title varch
25、ar(64) NOT NULL COMMENT 留言标题, leave_content text NOT NULL COMMENT 留言内容, leave_time datetime NOT NULL COMMENT 留言时间, PRIMARY KEY (leave_id) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=留言表 AUTO_INCREMENT=1;CREATE TABLE sw_back_word ( back_id int(11) NOT NULL auto_increment COMMENT 自增id, back_leave_id in
26、t(11) NOT NULL COMMENT 留言id:外键, back_content text NOT NULL COMMENT 回复内容, back_time datetime NOT NULL COMMENT 回复时间, PRIMARY KEY (back_id) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=回复表 AUTO_INCREMENT=1; 2.制作添加留言表单,实现留言的添加 3.留言明细页面,逐条显示留言信息 4.修改留言,对需要修改(get方式传递被修改留言id值,再利用隐藏域方式传递给接收页面)的项目进行修改 5.留言详细显示
27、功能,有的留言内容比较多,在明细页面不可能全部显示出来,这是需要留言详细显示功能。 (利用get方式传递留言id) 6.在详细页面可以实现回复功能和回复留言展示,步骤:制作一个回复表单和接收数据页面 7.(自己实现)删除留言,对无效、无用的留言实现删除功能(这时需要用get方式传递被删除留言id值) * *第九章 面向对象 为什么要用面向对象编程: 1.是一门流行语言 2.程序思想 3.框架的使用 4.模块化-易于维护 5.框架要使用面向对象 OOP (Object-Oriented Programming) OOP 达到了软件工程的三个主要目标:重用性、灵活性和扩展性。 什么是类: 类是具有
28、相同属性和服务(功能、行为)的一组对象的集合 什么是对象 对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。 一个对象由一个类名并包括属性说明和服务说明两部分。 A 1.理解面向对象思想 2.理解类和对象(实例化对象) 3.类的成员属性和方法 4.对象访问成员属性和方法 类:车、灯、鱼、人、学生 对象: 车(车甲、乙、丙、丁等)车撞树 灯(灯甲、乙、丙、丁等)灯坏了 鱼(鱼甲、乙、丙、丁等)鱼吐泡 人(张三、李四、王五、赵六、田七等)人打架 学生(学生甲、乙、丙、丁)学生迟到 B 1.实例化对象在内存中如何分配 2.对象中成员属性和方法的访问、$this关键字使用 3.构造方
29、法和析构方法 构造函数:实例化对象首先第一个需要做的事情就是构造函数。一个小孩出生到5岁之前,所有的事情都是父母帮助做的,包括起名字、穿衣服、吃饭等等。 析构函数:一个对象被使用完后需要做一些善后工作,这些善后工作是不需要人为干预的,例如资源释放、变量删除等。例如:一个小狗死后,主人非常爱惜它,就把它埋在了家后园的一颗树下。小狗被埋这件事情是主人做的,不是狗做的。这就是析构函数。 C 类的三大特性:封装、继承、多态 1.类的继承: 子类和父类之间的事情 B类的对象拥有A类的全部属性与行为,称作B对A类的继承 车(汽车、卡车、小轿车、客车等) 灯(台灯、灯管、路灯、灯塔等) 鱼(金鱼、鳄鱼、鲨鱼、鲸鱼、鲤鱼、刀鱼等) 人(黑人、白人、黄种人、中国人、美国人、男人、女人等) 2.类的封装 3.类的重写 子类和父类之间的事情,就是说父类有的方法,子类不但可以直接使用,还可以在子类中 重新定义具体内容,例如有一个父亲会驾驶汽车,那么他的儿子也会驾驶汽车,但他的儿子 可以不驾驶汽车,而驾驶飞机,这就是类方法的重写。 4.类中的修饰符:public、protected、private public:类成员访问没有限制,内部外部成员都可以访问 protected:受保护的,不能被类外部
限制150内