目录 第1章PHP入门/1 1.1PHP及其版本演变1 1.1.1什么是PHP1 1.1.2版本演变2 1.2Web基础3 1.2.1URL3 1.2.2HTTP3 1.2.3HTML5 1.3在Web页中嵌入PHP代码6 1.3.1PHP标签6 1.3.2嵌入PHP代码块7 1.4输出HTML8 1.5代码注释9 1.6PHP工作原理10 1.7运行环境与开发环境10 1.7.1搭建运行环境11 1.7.2搭建开发环境15 1.8使用Apache NetBeans IDE15 1.8.1界面组成15 1.8.2基本操作16 习题118 第2章HTML基础/19 2.1概念与基本元素19 2.1.1HTML文档19 2.1.2HTML元素20 2.1.3若干基本元素21 2.2列表23 2.2.1无序列表23 2.2.2有序列表24 2.2.3定义列表24 2.3表格25 2.3.1简单的表格25 2.3.2跨行与跨列25 2.3.3标题、表头、表体和表脚26 2.3.4边框与单元格间距26 2.3.5为列指定CSS样式28 2.4表单29 2.4.1表单元素form29 2.4.2input元素30 2.4.3为控件元素指定标签30 2.4.4textarea元素31 2.4.5选择列表32 习题232 第3章CSS基础/34 3.1CSS规则34 3.2CSS选择器35 3.2.1基本选择器35 3.2.2层次选择器37 3.2.3伪类选择器38 3.2.4伪元素选择器39 3.3使用CSS40 3.3.1定义和使用样式表40 3.3.2层叠处理41 3.4框模型与定位模式43 3.4.1框模型43 3.4.2相关术语44 3.4.3框的定位模式44 3.5CSS属性和属性值45 3.5.1字体和文本45 3.5.2颜色和背景47 3.5.3尺寸、边距和边框48 3.5.4定位与浮动50 3.5.5其他属性51 3.6实战: 浮动框与行内级块框52 3.6.1管理员子系统页头52 3.6.2管理员子系统登录表单53 习题355 第4章数据与变量/57 4.1PHP数据类型57 4.1.1标量类型57 4.1.2复合类型62 4.1.3null类型64 4.2类型转换65 4.2.1自动类型转换65 4.2.2强制类型转换66 4.3变量与常量68 4.3.1PHP变量68 4.3.2变量赋值68 4.3.3变量作用域69 4.3.4可变变量72 4.3.5常量72 4.4错误与错误报告73 4.4.1错误类型73 4.4.2错误报告机制74 4.5实战: 使用Heredoc字符串75 4.5.1输出HTML文档的前缀和后缀75 4.5.2呈现页头和页脚76 4.5.3动态登录表单77 习题478 第5章运算符与流程控制/80 5.1运算符80 5.1.1算术运算符80 5.1.2字符串运算符82 5.1.3比较运算符82 5.1.4逻辑运算符83 5.1.5位运算符84 5.1.6赋值运算符85 5.1.7其他运算符86 5.2表达式87 5.3流程控制89 5.3.1语句与语句块89 5.3.2选择结构90 5.3.3循环结构92 5.3.4跳转语句95 5.4包含文件96 5.4.1包含文件语句96 5.4.2包含文件位置99 5.5实战: 创建动态水平导航栏99 习题5100 第6章PHP函数/103 6.1函数的声明与调用103 6.1.1函数声明103 6.1.2函数调用104 6.2类型声明104 6.2.1类型104 6.2.2类型转换106 6.3函数参数106 6.3.1形参与实参106 6.3.2参数的默认值107 6.3.3名称参数108 6.3.4可变长参数108 6.4函数返回值109 6.5变量函数110 6.6匿名函数111 6.6.1匿名函数作为变量值111 6.6.2用作callable类型参数的值113 6.7日期时间函数113 6.8实战: 管理员子系统的各种表单116 6.8.1课程表单116 6.8.2选择学期表单118 6.8.3添加开课信息表单119 习题6121 第7章字符串处理/125 7.1长度与去空125 7.1.1字符串长度125 7.1.2字符串去空126 7.2大小写转换与比较127 7.2.1大小写转换127 7.2.2字符串比较127 7.3子串处理128 7.3.1获取子串128 7.3.2查找子串129 7.3.3替换子串130 7.4分隔和连接字符串132 7.5格式化输出133 7.6字符串特殊处理135 习题7137 第8章正则表达式/140 8.1字符类140 8.2元字符与转义序列141 8.3选项模式与子模式143 8.4量词144 8.5断言145 8.6PHP模式匹配函数146 8.7实战: 使用正则表达式150 8.7.1检测登录数据151 8.7.2检测课程数据151 习题8152 第9章使用数组/154 9.1创建和初始化数组154 9.2操作数组元素155 9.2.1访问数组元素155 9.2.2修改、添加或删除数组元素156 9.2.3在数组头部或尾部操作元素157 9.3遍历数组158 9.3.1数组指针158 9.3.2使用for语句遍历数组159 9.3.3使用while语句遍历数组159 9.3.4用回调函数处理数组各元素159 9.4数组排序160 9.4.1sort函数160 9.4.2asort和ksort函数161 9.4.3降序排序162 9.4.4随机排序和反向排序162 9.4.5用户自定义排序163 9.5其他数组操作163 9.5.1计数与统计163 9.5.2变量与数组元素的转换164 9.6实战: 呈现数据表格166 9.6.1课程信息表格166 9.6.2教师信息表格168 9.6.3开课信息列表169 习题9171 第10章面向对象编程(上)/174 10.1类的定义与对象的创建174 10.1.1概念174 10.1.2定义类175 10.1.3创建和使用对象176 10.2访问控制178 10.2.1访问修饰符178 10.2.2魔术方法__get和__set179 10.3构造方法与析构方法181 10.3.1构造方法181 10.3.2只读型实例变量182 10.3.3析构方法182 10.4静态类成员183 10.4.1静态变量与静态方法183 10.4.2类常量184 10.5类的自动加载185 10.6实战: 翻页导航栏186 10.6.1定义翻页导航栏类186 10.6.2定义并注册类自动加载函数188 习题10189 第11章面向对象编程(下)/192 11.1子类192 11.1.1定义子类192 11.1.2继承构造方法193 11.1.3类类型的兼容性194 11.1.4检测类型194 11.2覆盖196 11.2.1变量覆盖196 11.2.2方法覆盖196 11.2.3签名兼容性原则198 11.3抽象类和接口199 11.3.1抽象类199 11.3.2定义接口201 11.3.3实现接口202 11.4例外处理203 11.4.1概述203 11.4.2捕捉例外205 习题11208 第12章MySQL数据库基础/212 12.1登录MySQL服务器212 12.2数据库的创建与删除213 12.2.1创建数据库213 12.2.2选择当前数据库214 12.2.3显示数据库列表214 12.2.4删除数据库214 12.3MySQL数据类型215 12.3.1数值型215 12.3.2日期和时间型216 12.3.3字符串型218 12.4表的创建与删除220 12.4.1创建表220 12.4.2显示表列表和表结构223 12.4.3删除表224 12.5实战: 创建选课管理数据库224 12.5.1创建数据库224 12.5.2创建表225 12.6数据的插入、更新和删除227 12.6.1插入数据228 12.6.2更新数据229 12.6.3删除数据229 12.7查询230 12.7.1SELECT语句230 12.7.2指定列230 12.7.3选择行231 12.7.4使用谓词232 12.7.5排序查询结果233 12.7.6分组汇总233 12.7.7使用子查询234 12.7.8连接查询236 习题12237 第13章PHP访问MySQL数据库/238 13.1建立与MySQL服务器的连接238 13.2MySQLi错误报告模式239 13.2.1设置报告模式239 13.2.2创建连接对象时的错误处理240 13.3访问MySQL数据库241 13.4处理查询结果242 13.5事务管理245 13.6使用预处理语句247 13.6.1创建预处理语句247 13.6.2执行预处理语句248 13.6.3处理查询结果250 13.7实战: 数据库访问应用252 13.7.1定义数据库访问类252 13.7.2验证登录用户身份252 13.7.3添加课程记录253 13.7.4分页呈现数据254 13.7.5构建动态选项代码256 13.7.6开课信息的获取与维护258 习题13259 第14章表单与会话/261 14.1表单处理261 14.1.1提交表单261 14.1.2获取表单数据262 14.1.3检验表单数据265 14.2会话管理268 14.2.1Cookie268 14.2.2基于Cookie的会话机制270 14.2.3启动会话270 14.2.4会话变量271 14.3页面跳转与重定向272 14.4实战: 访问请求参数274 14.4.1addSchedules函数274 14.4.2“退出”系统275 习题14275 第15章文件处理/277 15.1常用的文件操作函数277 15.1.1创建目录与文件277 15.1.2检测目录和文件278 15.1.3读写文件279 15.2流与文件操作281 15.2.1打开与关闭文件281 15.2.2向文件写出数据282 15.2.3从文件读入数据283 15.2.4移动与检测文件指针284 15.3文件上传285 15.3.1文件上传表单285 15.3.2获取上传文件285 15.4文件下载288 习题15291 第16章管理员子系统总括/293 16.1子系统需求概述293 16.1.1用户登录293 16.1.2浏览教师信息293 16.1.3添加课程293 16.1.4维护开课信息295 16.1.5页面和视图297 16.2页面的抽象超类297 16.2.1WebPage抽象类297 16.2.2AdminPage抽象类298 16.2.3TaskPage抽象类299 16.2.4自动加载设置300 16.3请求处理视图关系表300 16.4具体页面类的设计和实现302 16.4.1设计和实现的规则302 16.4.2登录页面类302 16.4.3浏览教师信息页面类304 16.4.4添加课程页面类306 16.4.5维护开课信息页面类309 16.5具体页面类的调用312 附录A上机实验/315 A.1学生教师子系统需求概述315 A.1.1登录与注册315 A.1.2教师子系统317 A.1.3学生子系统320 A.2学生教师子系统主要模块实现322 A.2.1实验1: 页头和页脚322 A.2.2实验2: 动态登录与注册表单323 A.2.3实验3: 动态水平导航栏324 A.2.4实验4: 检测表单数据325 A.2.5实验5: 呈现数据表格326 A.2.6实验6: 录入成绩327 A.2.7实验7: 选课328 A.2.8实验8: 文件上传与下载应用331 A.3学生教师子系统集成332 A.3.1总体要求332 A.3.2登录与注册的设计与实现333 A.3.3教师子系统的设计与实现335 A.3.4学生子系统的设计与实现337 参考文献/340