




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一 LAMP 网站介绍 1 开发语言结构 B S 结构和 C S 结构 PHP 属于 B S 结构 我们将来的工作 基于 PHP 的 WEB 开发工程师 属于 B S 结构 三 HTTP 协议 HTTP 协议是超文本传输协议 默认端口是 80 一般请求方式 有 GET 和 POST 特点是无状态 PHP 是超文本预处理器 动态生成超文本的 HTML 是就是超文本标记语言 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 语言 基于微软平台的开发 特点 开发速度快 容易上手 开发成本低 移植性差 仅限 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 简单比较 区别 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 简单特点 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 数据类型 四个标量类型 int string float boolean 两个复合类型 array object 两个资源类型 resource NULL 4 什么是常量 常量的值是固定的 不能随便变化的 例如圆周率 系统里边 的用户名 密码等等 5 常量名的命名规则 没有美元符号 名字的命名规则和变量名一样 按照习惯都 是大写的 6 常量的定义 define CIRCLE 3 14159 defined CIRCLE 判断是否有定义常量 CIRCLE 7 常量的使用 直接引用 例如可以这样使用上边的变量 echo CIRCLE 还可以使用 php 系统里边自带的常量例如 echo FILE 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 运算符 算术 递增 递减 比较 逻辑 位 其他 特殊运算符 是连接符 是连接赋值 屏蔽错误信息 link mySQl connect 主机 用户名 密码 三目运算符 16 流程控制 顺序 选择 循环 作业 自己写一个函数 输入年份判断出当前输入参数是否是闰 年 能被 4 整除并且不能被 100 整除 或者能被 400 整除 第三单元 数组 定义 具有相同类型和名称的变量的集合 1 数组按照键名分索引和关联 2 数组赋值方式 一维 二维 3 遍历数组方式 遍历定义 沿着一定的路线 依次对数组里边的每个元素做一 次且仅做一次访问 foreach 数组 as 键名 值名 foreach 数组 as 值名 while list 键名 值名 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 字符串的三种定义方式 单引号 双引号 定界符 单引号定义 转义 和 双引号定义 转义 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 将字符串的每个单词的第一个字母大写 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 代码为实体代码 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 部分 表单标签 表单域 文本框 密码框 下拉列表 单选框 复选框 文本 域 隐藏域 附件 表单按钮 submit reset GET POST 1 为什么要用表单 表单可以实现两个或多个页面之间传递数据 2 制作一个表单 文本框 密码框 单选按钮 多选按钮 下拉菜 单 文本域 隐藏域 3 制作一个接收页面 用于接收表单数据 4 分别利用 post 和 get 两种方式进行表单数据传递 5 利用超链接方式进行 get 方式传送数据 作业 进行表单验证 第六单元 其他常用函数 date format timestamp 格式化时间信息 并返回 date default timezone set asia shanghai 设置时区 time 返回当前时间戳信息 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 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 hello 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 将字母转化为对应的 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 结果资源 从结果集中取得一行结果 索引 关 联数组 mysql fetch assoc 结果资源 从结果集中取得一行结果 关联数 组 mysql fetch row 结果资源 从结果集中取得一行结果 索引数组 mysql fetch object 结果资源 从结果集中取得一行结果 对象 mysql errno 返回错误号码 mysql error 返回错误信息 mysql affected rows 获得受影响的结果数目 增 删 改 查 mysql num rows 结果资源 用于计算查询结果中所得行的数目 查 mysql insert id 传回最近一次使用 INSERT 指令产生的自动 增长 ID 值 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 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 hobby 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 男 篮球 足球 初中 我 是张三 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 自选 将写入的数据展现到页面 第八单元 留言板 学习留言板目的 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 字段 数据类型 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 varchar 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 int 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 留言详细显示功能 有的留言内容比较多 在明细页面不可 能全部显示出来 这是需要留言详细显示功能 利用 get 方式传递留言 id 6 在详细页面可以实现回复功能和回复留言展示 步骤 制作 一个回复表单和接收数据页面 7 自己实现 删除留言 对无效 无用的留言实现删除功能 这时需要用 get 方式传递被删除留言 id 值 第九章 面向对象 为什么要用面向对象编程 1 是一门流行语言 2 程序思想 3 框架的使用 4 模块化 易于维护 5 框架要使用面向对象 OOP Object Oriented Programming OOP 达到了软件工程的三个主要目标 重用性 灵活性和扩展 性 什么是类 类是具有相同属性和服务 功能 行为 的一组对象的集合 什么是对象 对象是系统中用来描述客观事物的一个实体 它是构成系统的 一个基本单位 一个对象由一个类名并包括属性说明和服务说明两部分 A 1 理解面向对象思想 2 理解类和对象 实例化对象 3 类的成员属性和方法 4 对象访问成员属性和方法 类 车 灯 鱼 人 学生 对象 车 车甲 乙 丙 丁等 车撞树 灯 灯甲 乙 丙 丁等 灯坏了 鱼 鱼甲 乙 丙 丁等 鱼吐泡 人 张三 李四 王五 赵六 田七等 人打架 学生 学生甲 乙 丙 丁 学生迟到 B 1 实例化对象在内存中如何分配 2 对象中成员属性和方法的访问 this 关键字使用 3 构造方法和析构方法 构造函数 实例化对象首先第一个需要做的事情就是构造函 数 一个小孩出生到 5 岁之前 所有的事情都是父母帮助做的 包 括起名字 穿衣服 吃饭等等 析构函数 一个对象被使用完后需要做一些善后工作 这些 善后工作是不需要人为干预的 例如资源释放 变量删除等 例如 一个小狗死后 主人非常爱惜它 就把它埋在了家后园的一颗树下 小狗被埋这件事情是主人做的 不是狗做的 这就是析构函数 C 类的三大特性 封装 继承 多态 1 类的继承 子类和父类之间的事情 B 类的对象拥有 A 类的全部属性与行为 称作 B 对 A 类的继 承 车 汽车 卡车 小轿车 客车等 灯 台灯 灯管 路灯 灯塔等 鱼 金鱼 鳄鱼 鲨鱼 鲸鱼 鲤鱼 刀鱼等 人 黑人 白人 黄种人 中国人 美国人 男人 女人等 2 类的封装 3 类的重写 子类和父类之间的事情 就是说父类有的方法 子类不但可 以直接使用 还可以在子类中 重新定义具体内容 例如有一个父亲会驾驶汽车 那么他的 儿子也会驾驶汽车 但他的儿子 可以不驾驶汽车 而驾驶飞机 这就是类方法的重写 4 类中的修饰符 public protected private public 类成员访问没有限制 内部外部成员都可以访问 protected 受保护的 不能被类外部成员访问 该类的子类可 以访问 可以实现对成员属性的读 写操作 private 私有的 只能类里边的成员自己访问 类外部的成员 都不能访问 5 了解内容 get set unset 一个属性被修饰为私有的 private 那么这个属性在类的外 部是不可以读取和修改的 现在有一种方法 可以设置该属性既是私有的 还可以被类的外部成员读取即 get 和 set function get key name return this key name key name 泛指调用的私有 属性名 function set key name key value this key name key value D 1 final 最后的 关键字使用 该关键字修饰的类不能被继承 该关键字修饰的方法不能被重写 2 static 静态 关键字使用 类的内部 外部 子类 实例化对象在内存中的分配有讲到大的数据在内存被分配到 堆空间里边 现在有一个例子 有一个 学生 这个类 里边有一个成员属性是 国家 标识该对象是 属于哪个国家的 比如美国 英国 德国等 这个类在实例化对象时候 每个对象在内存中都会分配一 个空间用于存放国家这个成员属性 如果 有 100 个对象 那么在内容中会分配 100 个相应的空间 如 果这个类的使用对象是在 中国 境内 那么 每个对象的国家属性就会是一样的 即 中国 相应的在内 存中会有 100 个空间存放 100 个相同的内容 这会造成空间浪费 其实到这里我们可以知道 100 个相同的 内容用一个空间存放就可以 反正都是一样的 这就产生了静态化概念 static 用 static 修饰的成员属性 该属性就不是对象的 而是类的 3 self 和 parent 关键字使用 this self parent 三者的区别 this 泛指调用该方法的当前对象 在类的内部调用自己的 属性和方法时可以使用 this self 代表当前类 可以在类的内部调用自己的静态成员和类 常量 parent 代表父类 在子类可以使用 parent 调用父类的静态 成员和父类常量 在类的内部访问类中的成员 属性和方法 可以用 this 该关键字泛指对象 这是访问一般的类 成员 如果访问的成员是用 static 关键字修饰的 就不能用 this 了 因为用 static 修饰的类 成员是被类本身拥有 不属于任何对象了 这时候需要用 self 关键字修饰 self 成员 在类的外部访问类本身拥有的成员可以这样 类名 成员属性 在子类中访问父类拥有的成员可以用 parent 关键字 parent 成员属性 4 const 常量 关键字使用 在 php 中可以定义常量 类外部用 define 定义 类内部用 const 定义 常量的拥有者是类本身 类内部访问常量用 self 常量 类外部访问常量用 类名 常量 子类访问常量 parent 常量 5 类成员的访问 self 类名 parent 6 魔术方法 clone call autoload 使用 clone 在一个项目里边我们有时候需要两个或多个完全一样 的初始化对象 这时候可以使用 clone 技术 不用 clone 技术也可以 不过每个新的对象都需要初始 化属性值 这样比较繁琐 也容易出错 使用 clone 就比较简单 克隆出来的多个对象彼此是独立 的 互不相干 p2 clone p1 call 在类的使用过程中 如果一个对象调用的方法不在类 里边 那么这时候程序要报错 然后程序退 出不能继续运行 这样做用户体验非常不好 如果有一 种方法可以使得程序报错完后可以继续运 行 这样的程序给人更智能 用户体验更好的感觉 这时 候就可以用 call public function call method name args echo 你访问的方法 echo method name echo 参数 print r args echo 不存在 autoload 开发一个软件系统 往往里边会有很多类 在初 始化类对象之前需要先 include 这个对 象对应的类文件 所有的类不能都放到一个文件 文 件臃肿 不易维护 这样就会在程 序开始处有很多的 include 列表 这样做非常繁琐 出现 一个新的类就需要被 include 有没有一种方法可以使得被 include 的类文件在实例化对 象时候才引入 否则不动作 答案是有的 这时候可以用魔术方法 autoload function autoload className include className php 7 了解内容 toString serialize uns
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚车辆处理协议:车辆使用及所有权明确约定
- 细节明确离婚后未成年子女户口迁移及抚养责任协议
- 离婚房产分割与子女抚养费用分担及补偿协议
- 离婚协议补充:子女抚养权变更及共同财产分割协议
- 二手房买卖合同范本:包含房屋质量检测及验收
- 离婚协议中子女监护权调整及教育费用分担补充范本
- 离婚协议子女抚养及财产分割标准范本指南
- 精英主播与直播影视平台签订的独家合作协议范本
- 离婚时共同财产放弃与子女监护权分配协议
- 保险代理:保险代理签约注意事项及佣金分配合同
- 第一课 踏上强国之路 公开课一等奖创新教案 统编版道德与法治九年级上册
- 中学知识竞赛试题及答案
- 2025年中级注册安全工程师《金属非金属矿山安全实务》考试真题及答案
- 2025年职业卫生标准试题及答案
- 2025部编版八年级历史上册 第二单元 早期现代化的初步探索和民族危机加剧(大单元教学设计)
- 药械知识培训计划课件
- 2025年气瓶检验员闭卷考试题库及答案
- 2025-2026学年人教版(2024)初中数学七年级上册教学计划及进度表
- 医院环境感染监测制度
- 医院新项目创新建设汇报
- 部编版新教材道德与法治二年级上册《5. 这是我们班》教案
评论
0/150
提交评论