《细说PHP》目录结构

来源:互联网 发布:舞阳豫广网络客服电话 编辑:程序博客网 时间:2024/06/05 18:07

1  LAMP网站构建     1

1.1  网站软件简介.... 1

1.1.1  B/S软件体系结构... 1

1.1.2  动态网站介绍... 2

1.2  动态网站软件开发所需的Web构件.... 3

1.2.1  客户端浏览器... 4

1.2.2  扩展超文本标记语言XHTML. 5

1.2.3  层叠样式表CSS. 6

1.2.4  XMLXSLT.. 6

1.2.5  客户端脚本编程语言... 7

1.2.6  Web服务器... 8

1.2.7  服务器端脚本编程语言... 9

1.2.8  数据库管理系统... 10

1.3  网站软件开发平台及工作流程.... 11

1.3.1  动态网站开发平台... 11

1.3.2  动态网站开发平台技术比较... 12

1.4  客户端与服务器端交互的工作原理.... 13

1.4.1  HTTP协议是什么... 13

1.4.2  Web的工作原理... 14

1.5  LAMP网站开发组合概述.... 16

1.5.1  Linux操作系统... 17

1.5.2  Web服务器Apache. 17

1.5.3  MySQL数据库管理系统... 18

1.5.4  PHP后台脚本编程语言... 18

1.5.5  LAMP发展趋势... 20

1.6  小结.... 21

自测题.... 21

2  搭建PHP的开发环境     23

2.1  环境安装对操作系统的选择.... 23

2.1.1  选择网站运营的操作系统... 23

2.1.2  选择网站开发的操作系统... 24

2.2  Linux系统下源代码包方式安装环境.... 24

2.2.1  安装前准备... 24

2.2.2  编译安装过程介绍... 26

2.2.3  安装libxml2最新库文件... 27

2.2.4  安装libmcrypt最新库文件... 27

2.2.5  安装zlib最新库文件... 28

2.2.6  安装libpng最新库文件... 29

2.2.7  安装jpeg6最新库文件... 29

2.2.8  安装freetype最新库文件... 30

2.2.9  安装autoconf最新的库文件... 30

2.2.10  安装最新的GD库文件... 31

2.2.11  安装新版本的Apache服务器... 31

2.2.12  安装MySQL数据库管理系统... 32

2.2.13  安装最新版本的PHP模块... 36

2.2.14  安装Zend加速器... 38

2.2.15  phpMyAdmin的安装... 39

2.2.16  phpMyAdmin的配置... 40

2.3  Windows系统上安装Web工作环境.... 42

2.3.1安装前准备... 42

2.3.2  安装Apache. 43

2.3.3  安装MySQL. 46

2.3.4  安装PHP. 52

2.3.5  安装Zend加速器... 55

2.4  Window系统上安装集成开发环境.... 57

2.4.1  安装前准备... 58

2.4.2  安装步骤... 58

2.4.3  环境测试... 60

2.5  小结.... 61

自测题.... 61

3  Apache服务器的配置     62

3.1  Apache简介.... 62

3.1.1  Apache的诞生... 63

3.1.2  Apache的特性... 63

3.2  Apache服务器的目录结构.... 63

3.3  Apache服务器配置文件结构说明.... 64

3.3.1  Apache服务器配置文件位置... 64

3.3.2  配置文件的语法... 65

3.4  Apache服务器全局参数设置.... 66

3.4.1  在主配置文件httpd.conf中的全局参数... 67

3.4.2  附加配置文件httpd-default.conf中的
全局参数... 70

3.4.3  附加配置文件httpd-mpm.conf中的全局
参数... 71

3.5  Apache服务器中使用配置段(容器).... 74

3.5.1  文件系统容器... 76

3.5.2  网络空间容器... 76

3.5.3  通配符和正则表达式... 76

3.5.4  如何选择使用容器... 77

3.6  .htaccess文件和访问限制.... 77

3.6.1  设置路径别名... 78

3.6.2  .htaccess文件中设置目录的访问限制... 80

3.7  设置虚拟主机.... 80

3.7.1  基于IP地址的虚拟主机... 81

3.7.2  基于主机名的虚拟主机... 83

3.8  小结.... 87

自测题.... 87

4  XHTMLCSS网页标准化布局     89

4.1  网页制作概述.... 89

4.1.1  XHTML基础... 89

4.1.2  CSS基础... 91

4.2  HTML的设计与应用.... 92

4.2.1  XHTML语言的语法... 92

4.2.2  XHTML文件的主体结构... 94

4.2.3  文字版面的编辑... 97

4.2.4  创建图像和链接... 99

4.2.5  使用XHTML表格... 101

4.2.6  XHTML框架结构... 103

4.2.7  XHTML表单设计... 106

4.3  CSS的设计与应用.... 109

4.3.1  将样式表加入到HTML... 110

4.3.2  CSS选择符... 111

4.3.3  常见的样式属性和值... 113

4.4  DIV+CSS网页标准化布局.... 120

4.4.1  DIV+CSS的优势... 121

4.4.2 “无意义”的元素divspan. 121

4.4.3  区块框模型... 122

4.4.4  区块框定位... 123

4.4.5  区块框浮动... 124

4.4.6  使用区块框设计页面布局... 126

4.5  XHTMLCSS网站首页面布局实例.... 129

4.5.1  XHTML文件的设计... 129

4.5.2  CSS文件设计... 130

4.6  小结.... 132

自测题.... 133

5  PHP的基本语法     136

5.1  PHPWeb开发中的应用.... 136

5.2  第一个PHP脚本程序.... 138

5.2.1  PHP语言标记... 141

5.2.2  指令分隔符“分号” 144

5.2.3  程序注释... 144

5.2.4  在程序中使用空白的处理... 145

5.3  变量.... 146

5.3.1  变量的声明... 146

5.3.2  变量的命名... 147

5.3.3  可变变量... 148

5.3.4  变量的引用赋值... 149

5.4  变量的类型.... 149

5.4.1  类型介绍... 150

5.4.2  布尔型(boolean... 150

5.4.3  整型(integer... 151

5.4.4  浮点型(floatdouble... 152

5.4.5  字符串(String... 152

5.4.6  数组(Array... 155

5.4.7  对象(Object... 155

5.4.8  资源类型(Resource... 156

5.4.9  NULL类型... 156

5.4.10  伪类型介绍... 157

5.4.11  数据类型之间相互转换... 157

5.5  常量.... 160

5.5.1  常量的定义和使用... 160

5.5.2  常量和变量... 161

5.5.3  预定义常量... 161

5.6  PHP中的运算符.... 162

5.6.1  算术运算符... 163

5.6.2  字符串运算符... 165

5.6.3  赋值运算符... 165

5.6.4  比较运算符... 166

5.6.5  逻辑运算符... 167

5.6.6  位运算符... 168

5.6.7  其他运算符... 171

5.6.8  运算符的优先级... 173

5.7  表达式.... 174

5.8  小结.... 174

自测题.... 174

6  PHP的语言结构     176

6.1  流程控制概述.... 176

6.2  分支结构.... 176

6.2.1  单一条件分支结构(if... 177

6.2.2  双向条件分支结构(else子句)... 178

6.2.3  多向条件分支结构(elseif子句)... 179

6.2.4  多向条件分支结构(switch语句)... 180

6.2.5  巢状条件分支结构... 183

6.2.6  条件分支结构应用实例(简单计算器)... 184

6.3  循环结构.... 186

6.3.1  while语句... 187

6.3.2  do…while循环... 189

6.3.3  for语句... 190

6.3.4  特殊的流程控制语句... 192

6.4  PHP中的函数.... 195

6.4.1  函数的定义... 195

6.4.2  自定义函数... 195

6.4.3  函数的工作原理和结构化编程... 201

6.4.4  PHP变量的范围... 202

6.4.5  参数的传递... 204

6.4.6  变量函数... 207

6.4.7  递归函数... 208

6.4.8  使用自定义函数库... 209

6.4.9  使用系统函数库... 210

6.5  小结.... 210

自测题.... 211

7  PHP中的数组与数据结构     214

7.1  数组的概述.... 214

7.1.1  数组的分类... 215

7.2  数组的定义.... 216

7.2.1  直接赋值的方式声明数组... 216

7.2.2  使用array()语言结构新建数组... 218

7.2.3  多维数组的声明... 218

7.3  数组的遍历.... 220

7.3.1  使用for语句循环遍历数组... 220

7.3.2  使用foreach语句遍历数组... 222

7.3.3  联合使用list( )each( )while循环
遍历数组... 225

7.3.4  使用数组的内部指针控制函数遍历
数组... 227

7.4  预定义数组.... 228

7.4.1  服务器变量:$_SERVER.. 229

7.4.2  环境变量:$_ENV.. 229

7.4.3  HTTP GET变量:$_GET.. 230

7.4.4  HTTP POST变量:$_POST.. 230

7.4.5  request变量:$_REQUEST.. 232

7.4.6  HTTP文件上传变量:$_FILES. 232

7.4.7  HTTP Cookies$_COOKIE. 232

7.4.8  Session变量:$_SESSION.. 232

7.4.9  Global变量:$GLOBALS. 233

7.5  数组的相关处理函数.... 233

7.5.1  数组的键/值操作函数... 233

7.5.2  统计数组元素的个数和唯一性... 236

7.5.3  使用回调函数处理数组的函数... 237

7.5.4  数组的排序函数... 240

7.5.5  拆分、合并、分解和接合数组... 244

7.5.6  数组与数据结构... 247

7.5.7  其他有用的数组处理函数... 248

7.6  小结.... 250

自测题.... 250

8  PHP面向对象的程序设计     253

8.1  面象对象的介绍.... 253

8.1.1  类和对象之间的关系... 253

8.1.2  面向对象的程序设计... 254

8.2  如何抽象一个类.... 255

8.2.1  类的声明... 255

8.2.2  成员属性... 256

8.2.3  成员方法... 257

8.3  通过类实例化对象.... 258

8.3.1  创建对象... 259

8.3.2  对象类型在内存中的分配... 259

8.3.4  对象中成员的访问... 261

8.3.5  特殊的对象引用“$this”. 263

8.3.6  构造方法与析构方法... 264

8.4  封装性.... 267

8.4.1  设置私有成员... 268

8.4.2  私有成员的访问... 269

8.4.3  __set()__get()__isset()__unset()
四个方法... 271

8.5  继承性.... 276

8.5.1  类继承的应用... 277

8.5.2  访问类型控制... 278

8.5.3  子类中重载父类的方法... 280

8.6  常见的关键字和魔术方法.... 282

8.6.1  final关键字的应用... 283

8.6.2  staticconst关键字的使用... 283

8.6.3  克隆对象... 285

8.6.4  类中通用的方法__toString() 287

8.6.5  通过__call()方法处理错误调用... 287

8.6.6  自动加载类... 288

8.6.7  对象串行化... 289

8.7  抽象类与接口.... 291

8.7.1  抽象方法和抽象类... 291

8.7.2  接口技术... 293

8.8  多态性的应用.... 295

8.9  小结.... 300

自测题.... 300

9  字符串处理与正则表达式     303

9.1  字符串的处理介绍.... 303

9.1.1  字符串的处理方式... 303

9.1.2  字符串类型的特点... 303

9.2  常用的字符串输出函数.... 304

9.3  常用的字符串格式化函数.... 306

9.3.1  去除空格和字符串填补函数... 307

9.3.2  字符串大小写的转换... 308

9.3.3  HTML标签相关的字符串格式化... 309

9.3.4  其他字符串格式化函数... 313

9.4  字符串比较函数.... 314

9.4.1  按字节顺序进行字符串比较... 314

9.4.2  按自然排序进行字符串比较... 315

9.5  正则表达式在字符串处理中的应用.... 316

9.5.1  正则表达式简介... 316

9.5.2  正则表达式的语法规则... 317

9.6  Perl兼容的正则表达式函数.... 322

9.6.1  字符串的匹配与查找... 323

9.6.2  字符串的替换... 326

9.6.3  字符串的分割和连接... 331

9.7  文章发布操作示例.... 333

9.8  小结.... 337

自测题.... 337

10  PHP常用功能模块     340

10.1  错误和异常处理.... 340

10.1.1  错误类型和基本的调试方法... 341

10.1.2  错误日志... 343

10.1.3  异常处理... 345

10.2  日期和时间.... 350

10.2.1  UNIX时间戳... 350

10.2.2  PHP中获取日期和时间... 351

10.2.3  日期和时间格式化输出... 352

10.2.4  修改PHP的默认时区... 353

10.2.5  使用微秒计算PHP脚本执行时间... 354

10.3  动态图像处理.... 355

10.3.1  PHPGD库的使用... 355

10.3.2  画布管理... 356

10.3.3  设置颜色... 357

10.3.4  生成图像... 358

10.3.5  绘制图像... 359

10.3.6  在图像中绘制文字... 361

10.3.7  PHP中实现验证码类的设计... 363

10.4  小结.... 367

自测题.... 367

11  文件系统处理     369

11.1  文件系统概述.... 369

11.1.1  文件类型... 369

11.1.2  文件的属性... 370

11.2  目录的基本操作.... 373

11.2.1  解析目录路径... 373

11.2.2  遍历目录... 375

11.2.3  统计目录大小... 376

11.2.4  建立和删除目录... 377

11.2.5  复制或移动目录... 377

11.3  文件的基本操作.... 378

11.3.1  文件的打开与关闭... 378

11.3.2  写入文件... 380

11.3.3  读取文件内容... 381

11.3.4  访问远程文件... 383

11.3.5  移动文件指针... 384

11.3.6  文件的锁定机制... 385

11.3.7  文件的一些基本操作函数... 387

11.4  文件的上传与下载.... 388

11.4.1  文件上传... 389

11.4.2  处理多个文件上传... 392

11.4.3  文件下载... 393

11.5  文件系统项目实例.... 394

11.5.1  功能分析... 394

11.5.2  系统功能设计... 395

11.5.3  实例代码实现... 396

11.6  小结.... 418

自测题.... 418

12  MySQL数据库设计     420

12.1  MySQL数据库管理.... 420

12.1.1  数据库管理系统... 420

12.1.2  结构化查询语言SQL. 421

12.1.3  MySQL数据库的连接与关闭... 422

12.1.4  创建、选择及查看数据库... 423

12.2  MySQL数据库中数据表的设计.... 423

12.2.1  数据表(Table... 423

12.2.2  数据值和列类型... 424

12.2.3  数据字段属性... 427

12.2.4  创建、修改及删除表... 427

12.2.5  数据表的类型及存储位置... 430

12.2.6  数据表的默认字符集... 431

12.2.7  创建索引... 432

12.3  数据库的设计步骤.... 435

12.3.1  需求分析... 435

12.3.2  概念设计... 437

12.3.3  逻辑设计... 439

12.4  SQL语言设计.... 441

12.4.1  执行DDL命令操作数据对象... 441

12.4.2  使用DML命令操作数据表中的数据
记录... 443

12.4.3  通过DQL命令查询数据表中的数据... 445

12.5  使用PHP脚本向MySQL服务器发送
SQL
.. 455

12.5.1  PHP脚本中连接MySQL服务器... 456

12.5.2  PHP程序中选择已创建的数据库... 456

12.5.3  执行SQL命令... 457

12.5.4  PHP脚本中处理SELECT查询
结果集... 458

12.6  小结.... 460

自测题.... 460

13  PHPmysqli扩展     464

13.1  启用mysqli扩展模块.... 464

13.2  使用mysqli.... 465

13.2.1  连接MySQL服务器... 466

13.2.2  处理连接错误报告... 467

13.2.3  关闭与MySQL服务器连接... 468

13.2.4  执行SQL命令... 469

13.3  使用mysqli_result.... 469

13.3.1  创建结果集对象... 470

13.3.2  回收查询内存... 470

13.3.3  从结果集中解析数据... 471

13.3.4  从结果集中获取数据列的信息... 474

13.3.5  一次执行多条SQL命令... 475

13.4  使用mysqli_stmt.... 476

13.4.1  获取预处理语句对象... 477

13.4.2  绑定参数... 477

13.4.3  执行准备好的语句... 478

13.4.4  回收资源... 478

13.4.5  简单的示例分析... 478

13.4.6  使用预处理语句处理SELECT查询
结果... 479

13.5  数据库事务.... 481

13.5.1  事务处理... 481

13.5.2  构建事务应用程序... 482

13.6  MVC模式实现商品管理系统.... 483

13.6.1  MVC设计模式... 483

13.6.2  商品管理系统的设计与实现... 485

13.7  小结.... 494

自测题.... 494

14  数据库抽象层PDO    497

14.1  PDO所支持的数据库.... 497

14.2  PDO的安装.... 498

14.3  创建PDO对象.... 499

14.3.1  以多种方式调用构造方法... 500

14.3.2  PDO对象中的成员方法... 502

14.4  使用PDO对象.... 502

14.4.1  调整PDO的行为属性... 503

 

14.4.2  PDO处理PHP程序和数据库之间的
数据类型转换... 503

14.4.3  PDO的错误处理模式... 504

14.4.4  使用PDO执行SQL语句... 504

14.5  PDO对预处理语句的支持.... 506

14.5.1  了解PDOStatement对象... 507

14.5.2  准备语句... 507

14.5.3  绑定参数... 508

14.5.4  执行准备好的查询... 509

14.5.5  获取数据... 510

14.5.6  大数据对象的存取... 513

14.6  PDO的事务处理.... 514

14.7  小结.... 515

自测题.... 515

15  会话控制     517

15.1  为什么要使用会话控制.... 517

15.2  会话跟踪的方式.... 518

15.3  Cookie的应用.... 518

15.3.1  Cookie概述... 519

15.3.2  向客户端电脑中设置Cookie. 519

15.3.3  PHP脚本中读取Cookie的资料
内容... 521

15.3.4  数组形态的Cookie应用... 521

15.3.5  删除Cookie. 522

15.3.6  基于Cookie的用户登录模块... 522

15.4  Session的应用.... 524

15.4.1  Session概述... 524

15.4.2  配置Session. 525

15.4.3  Session的声明与使用... 526

15.4.4  注册一个会话变量和读取Session. 526

15.4.5  注销变量与销毁Session. 527

15.4.6  传递Session ID.. 528

15.5  一个简单的邮件系统.... 530

15.5.1  为邮件系统准备数据... 531

15.5.2  编码实现邮件系统... 531

15.5.3  邮件系统执行说明... 534

15.6  小结.... 535

自测题.... 535

16  PHP的模板技术Smarty  537

16.1  什么是模板引擎.... 537

16.2  编写自己的模板引擎.... 538

16.2.1  创建自己的模板引擎类... 538

16.2.2  使用自已的模板引擎... 540

16.2.3  自定义模板的使用示例分析... 542

16.3  选择Smarty模板引擎.... 545

16.4  安装Smarty及初使化配置.... 546

16.4.1  安装Smarty. 546

16.4.2  初使化Smarty类库的默认设置... 546

16.4.3  第一个Smarty的简单示例... 548

16.5  Smarty在应用程序逻辑层的使用步骤.... 550

16.6  Smarty模板中的程序逻辑.... 551

16.6.1  模板中的注释... 551

16.6.2  模板中变量的声明... 552

16.6.3  在模板中输出从PHP分配的变量... 552

16.6.4  模板中变量的数学计算... 554

16.6.5  在模板中使用{$smarty}保留变量... 554

16.6.6  变量调解器... 555

16.6.7  模板的控制结构... 557

16.6.8  在模板中包含子模板... 563

16.7  Smarty模板创建配置文件.... 563

16.7.1  配置文件语法格式... 563

16.7.2  加载配置文件... 564

16.7.3  引用配置文件中的变量... 565

16.8  Smarty处理页面缓存.... 566

16.8.1  Smarty中控制缓存... 567

16.8.2  每个页面多个缓存... 568

16.8.3  为缓存实例消除处理开销... 568

16.8.4  清除缓存... 569

16.8.5  关闭局部缓存... 570

16.9  应用Smarty实现分页示例.... 571

16.9.1  准备工作... 571

16.9.2  设计数据库操作类... 572

16.9.3  设计分页操作类... 573

16.9.4  PHP的程序逻辑层... 575

16.9.5  Smarty模板的表现层... 576

16.10  小结.... 577

自测题.... 577

17  内容管理系统(CMS     579

17.1  Web软件开发流程概述.... 579

17.1.1  Web开发团队的成员... 579

17.1.2  Web软件开发流程... 580

17.1.3  项目开发规范... 582

17.2  需求分析.... 584

17.2.1  CMS简介... 584

17.2.2  用户行为分析... 584

17.2.3  系统目标... 585

17.2.4  系统特点... 586

17.3  系统功能预览.... 586

17.3.1  CMS系统安装... 586

17.3.2  登录管理平台... 589

17.3.3  常规设置管理... 590

17.3.4  友情链接管理... 591

17.3.5  图片管理... 592

17.3.6  栏目管理... 595

17.3.7  文章管理... 596

17.3.8  用户管理... 597

17.3.9  网站首页... 598

17.3.10  文章列表页面... 599

17.3.11  文章内容页面... 600

17.4  数据库设计.... 601

17.4.1  数据库需求分析... 601

17.4.2  数据表关系... 605

17.5  系统架构.... 605

17.5.1  系统体系结构... 605

17.5.2  管理平台的文件结构... 607

17.5.3  网站前台模板风格的文件结构... 608

17.6  常用的功能模块开发.... 610

17.6.1  系统安装模块设计... 610

17.6.2  管理平台(后台)的模块设计... 616

17.6.3  无限分类模块设计... 619

17.6.4  网站首页面的设计... 624

17.7  小结.... 625

附录A  PHP配置文件详解     627

 

原创粉丝点击