新書推薦:
《
当代精神分析新论
》
售價:HK$
94.6
《
宋初三先生集(中国思想史资料丛刊)
》
售價:HK$
217.8
《
定言命令式:康德道德哲学研究(政治哲学名著译丛)
》
售價:HK$
129.8
《
棕榈油的全球史 : 从奴隶船到购物篮
》
售價:HK$
96.8
《
简帛时代与早期中国思想世界(上下册)(王中江著作系列)
》
售價:HK$
308.0
《
进化主义在中国的兴起(王中江著作系列)
》
售價:HK$
209.0
《
不废风雅 生活的意趣(汪曾祺风雅意趣妙文)
》
售價:HK$
61.6
《
东亚世界形成史论(新版)
》
售價:HK$
107.8
|
編輯推薦: |
即使你只有基本的HTML知识,也能把开源技术和Web标准有机结合起来,构建数据驱动的交互式网站。这是一本实用的指南,经过全面更新,现已使用如今*的Web编程核心技术,涵盖PHP、MySQL、JavaScript、CSS、HTML5和主要的jQuery库。
阅读本书,Web设计人员将逐一学习这些技术,并且养成良好的Web编程习惯,甚至还将了解如何针对移动设备优化网站。在本书结尾,我们将综合应用所学的知识,构建一个功能完善的社交网络网站,在桌面和移动浏览器中都有精美的外观。
|
內容簡介: |
探讨MySQL,从数据库结构到复杂的查询。 使用PHP内置的增强型MySQL接口MySQLi扩展。 创建适用于不同用户的动态PHP网页。 管理cookie和会话,保持较高的安全性。 借助jQuery和jQuery Mobile库增强JavaScript语言。 使用Ajax在后台处理浏览器与服务器之间的通信。 掌握装饰网页的CSS2和CSS3技能。 使用 HTML5特性,包括地理定位、音频、视频和画布元素。 把网站改造成移动Web应用。
|
關於作者: |
Robin Nixon是一位IT新闻工作者,从20世纪80年代初接触计算机,一直撰写关于计算机的文字,写了上百篇文章和几十本书,还使用开源工具,尤其是本书中涵盖的技术开发了大量网站。
|
目錄:
|
目录
前言 .1
第1 章 动态Web 内容概述 7
1.1 HTTP 和 HTML:Berners-Lee 成名的关键 .8
1.2 请求- 响应过程8
1.3 PHP、MySQL、JavaScript、CSS 和HTML5 的优势 .11
1.3.1 MariaDB:MySQL 的同胞兄弟 12
1.3.2 使用 PHP 12
1.3.3 使用 MySQL 13
1.3.4 使用 JavaScript 14
1.3.5 使用 CSS 16
1.4 于是 HTML5 出现了 .16
1.5 Apache Web 服务器 17
1.6 处理移动设备 18
1.7 关于开源 .18
1.8 综合应用 .18
1.9 思考题 20
第2 章 搭建开发服务器 21
2.1 WAMP、MAMP 或 LAMP 是什么? 21
2.2 在 Windows 中安装 AMPPS 22
2.2.1 测试安装结果 .26
2.2.2 访问文档根目录(Windows) 28
2.2.3 其他 WAMP.29
2.3 在 macOS 中安装 AMPPS 30
访问文档根目录(macOS) 31
2.4 在 Linux 中安装 LAMP 32
2.5 远程工作 .32
2.5.1 登录 .33
2.5.2 使用 FTP 33
2.6 使用代码编辑器 34
2.7 使用 IDE .35
2.8 思考题 36
第3 章 PHP 入门 .37
3.1 在 HTML 代码中嵌入 PHP 37
3.2 本书示例 .39
3.3 PHP 语言结构 40
3.3.1 注释 .40
3.3.2 基本句法 41
3.3.3 变量 .42
3.3.4 运算符 46
3.3.5 变量赋值 50
3.3.6 多行字符串 .52
3.3.7 变量类型 55
3.3.8 常量 .55
3.3.9 预定义的常量 .56
3.3.10 echo 和 print 命令的区别 57
3.3.11 函数 58
3.3.12 变量作用域59
3.4 思考题 64
第4 章 PHP 中的表达式和控制流程 66
4.1 表达式 66
4.1.1 TRUE 或 FALSE 67
4.1.2 字面量和变量 .68
4.2 运算符 69
4.2.1 运算符优先级 .70
4.2.2 结合性 72
4.2.3 关系运算符 .73
4.3 条件语句 .77
4.3.1 if 语句 77
4.3.2 else 语句 79
4.3.3 elseif 语句 80
4.3.4 switch 语句 81
4.3.5 ? 运算符 84
4.4 循环 85
4.4.1 while 循环 86
4.4.2 dowhile 循环 88
4.4.3 for 循环 .89
4.4.4 跳出循环 90
4.4.5 continue 语句 .92
4.5 隐式和显式类型转换 92
4.6 PHP 动态链接 93
4.7 动态链接实例 94
4.8 思考题 95
第5 章 PHP 函数和对象 96
5.1 PHP 函数 .97
5.1.1 定义函数 98
5.1.2 返回一个值 .99
5.1.3 返回一个数组 101
5.1.4 引用传参 101
5.1.5 返回全局变量 103
5.1.6 变量作用域小结 .104
5.2 引入文件和导入文件 .104
5.2.1 include 语句 .104
5.2.2 使用 include_once .105
5.2.3 使用 require 和 require_once 105
5.3 PHP 不同版本的兼容性 106
5.4 PHP 对象 106
5.4.1 术语 107
5.4.2 声明一个类 108
5.4.3 创建对象 109
5.4.4 访问对象 109
5.4.5 克隆对象 111
5.4.6 构造方法 112
5.4.7 析构方法 113
5.4.8 编写方法 113
5.4.9 声明属性 114
5.4.10 声明常量 .115
5.4.11 属性和方法的作用域 .115
5.4.12 静态方法 .116
5.4.13 静态属性 .117
5.4.14 继承 118
5.5 思考题 122
第6 章 PHP 数组 123
6.1 基本的数据存取 123
6.1.1 数字索引数组 123
6.1.2 关联数组 125
6.1.3 使用 array 关键字赋值 126
6.2 foreachas 循环 127
6.3 多维数组 129
6.4 使用数组函数 .132
6.4.1 is_array 132
6.4.2 count.133
6.4.3 sort 133
6.4.4 shuffle .134
6.4.5 explode 134
6.4.6 extract 135
6.4.7 compact 136
6.4.8 reset 137
6.4.9 end .137
6.5 思考题 137
第7 章 实用PHP 技术 139
7.1 使用 printf 139
7.1.1 设置精度 140
7.1.2 填补字符串 142
7.1.3 使用 sprintf 143
7.2 日期和时间函数 144
7.2.1 日期常量 146
7.2.2 使用 checkdate 147
7.3 处理文件 147
7.3.1 检查文件是否存在 147
7.3.2 创建文件 148
7.3.3 从文件中读取内容 149
7.3.4 复制文件 150
7.3.5 移动文件 151
7.3.6 删除文件 151
7.3.7 更新文件 152
7.3.8 多方存取时锁定文件153
7.3.9 读取整个文件 155
7.3.10 上传文件 .156
7.4 系统调用 160
7.5 XHTML 还是 HTML5 ? .162
7.6 思考题 163
第8 章 MySQL 入门 164
8.1 MySQL 基础知识 .164
8.2 数据库术语概览 165
8.3 通过命令行访问 MySQL 165
8.3.1 启动命令行接口 .166
8.3.2 使用命令行接口 .170
8.3.3 MySQL 命令 171
8.3.4 数据类型 176
8.4 索引 .185
8.4.1 创建索引 186
8.4.2 查询 MySQL 数据库 191
8.4.3 联结表 .200
8.4.4 使用逻辑运算符 .203
8.5 MySQL 函数 204
8.6 通过 phpMyAdmin 访问 MySQL .204
8.7 思考题 205
第9 章 精通MySQL 207
9.1 数据库设计 .207
主键:关系型数据库的灵魂 208
9.2 规范化 209
9.2.1 第一范式 210
9.2.2 第二范式 212
9.2.3 第三范式 214
9.2.4 什么时候不做规范化216
9.3 关系 .217
9.3.1 一对一关系 217
9.3.2 一对多关系 218
9.3.3 多对多关系 218
9.3.4 数据库的匿名性 .220
9.4 事务 .220
9.4.1 事务存储引擎 220
9.4.2 使用 BEGIN .222
9.4.3 使用 COMMIT 222
9.4.4 使用 ROLLBACK .222
9.5 使用 EXPLAIN .223
9.6 备份和还原 .225
9.6.1 使用 mysqldump .225
9.6.2 创建备份文件 227
9.6.3 从备份文件还原 .228
9.6.4 转储 CSV 格式 229
9.6.5 做好备份计划 229
9.7 思考题 230
第10 章 使用PHP 访问MySQL . 231
10.1 使用 PHP 查询 MySQL 数据库 231
10.1.1 过程 231
10.1.2 创建登录文件 232
10.1.3 连接 MySQL 数据库 .233
10.2 一个实例 238
10.2.1 $_POST 数组 .241
10.2.2 删除记录 .242
10.2.3 显示表单 .243
10.2.4 查询数据库.244
10.2.5 运行程序 .245
10.3 MySQL 实践 246
10.3.1 创建表 246
10.3.2 描述表 247
10.3.3 删除表 248
10.3.4 添加数据 .248
10.3.5 检索数据 .249
10.3.6 更新数据 .250
10.3.7 删除数据 .250
10.3.8 使用 AUTO_INCREMENT .251
10.3.9 执行额外的查询 252
10.4 防止黑客攻击 254
10.4.1 可以采取的措施 255
10.4.2 使用占位符.256
10.4.3 防止 HTML 注入 .258
10.5 mysqli 的过程式用法 260
10.6 思考题 .262
第11 章 表单处理 . 263
11.1 构建表单 263
11.2 获取提交的数据 .265
11.2.1 默认值 266
11.2.2 输入类型 .267
11.2.3 净化输入 .274
11.3 一个示例程序 276
11.4 HTML5 功能增强 279
11.4.1 autocomplete 属性 279
11.4.2 autofocus 属性 279
11.4.3 placeholder 属性 279
11.4.4 required 属性 .280
11.4.5 覆盖属性 .280
11.4.6 width 属性和height 属性 .280
11.4.7 min 属性和max 属性 280
11.4.8 step 属性 281
11.4.9 form 属性 281
11.4.10 list 属性 .281
11.4.11 颜色输入框 282
11.4.12 数字和值域输入框 282
11.4.13 日期和时间选择器 282
11.5 思考题 .282
第12 章 cookie、会话和身份验证 . 284
12.1 在 PHP 中使用 cookie .284
12.1.1 设置 cookie 286
12.1.2 访问 cookie 287
12.1.3 销毁 cookie 287
12.2 HTTP 身份验证 287
12.2.1 存储用户名和密码 .290
12.2.2 一个示例程序 292
12.3 使用会话 296
12.3.1 开始会话 .296
12.3.2 结束会话 .299
12.3.3 设置超时时间 300
12.3.4 会话的安全性 301
12.4 思考题 .304
第13 章 探索JavaScript 306
13.1 JavaScript 和 HTML 文本 .307
13.1.1 在文档头部引入脚本 .308
13.1.2 老旧和非标准浏览器 .309
13.1.3 引入 JavaScript 文件 .310
13.1.4 调试 JavaScript 错误 .310
13.2 使用注释 311
13.3 分号 311
13.4 变量 312
13.4.1 字符串变量.312
13.4.2 数值变量 .313
13.4.3 数组 313
13.5 运算符 .314
13.5.1 算术运算符.314
13.5.2 赋值运算符.314
13.5.3 比较运算符.315
13.5.4 逻辑运算符.315
13.5.5 递增、递减和简短赋值运算符 .316
13.5.6 字符串拼接.316
13.5.7 转义字符 .316
13.6 变量类型 317
13.7 函数 318
13.8 全局变量 319
13.9 局部变量 319
13.10 文档对象模型 320
13.10.1 $ 符号的另一个用途322
13.10.2 使用 DOM 323
13.11 关于 document.write 324
13.11.1 使用 console.log 324
13.11.2 使用 alert 324
13.11.3 写入元素 324
13.11.4 使用 document.write 324
13.12 思考题 325
第14 章 JavaScript 表达式和控制流. 326
14.1 表达式 .326
14.2 字面量和变量 327
14.3 运算符 .328
14.3.1 运算符优先级 329
14.3.2 结合性 .330
14.3.3 关系运算符.330
14.4 with 语句 333
14.5 使用 onerror .334
14.6 使用 trycatch 335
14.7 条件语句 336
14.7.1 if 语句 336
14.7.2 else 语句 337
14.7.3 switch 语句 .337
14.7.4 ? 运算符 339
14.8 循环 340
14.8.1 while 循环 340
14.8.2 dowhile 循环 .341
14.8.3 for 循环 341
14.8.4 跳出循环 .342
14.8.5 continue 语句 343
14.9 显式转换类型 344
14.10 思考题 345
第15 章 JavaScript 函数、对象和数组 346
15.1 JavaScript 函数 346
15.1.1 定义函数 .346
15.1.2 返回一个值.348
15.1.3 返回一个数组 350
15.2 JavaScript 对象 351
15.2.1 声明类 351
15.2.2 创建对象 .353
15.2.3 访问对象 .353
15.2.4 prototype 关键字 .354
15.3 JavaScript 数组 357
15.3.1 数字数组 .357
15.3.2 关联数组 .358
15.3.3 多维数组 .359
15.3.4 使用数组方法 361
15.4 思考题 .366
第16 章 JavaScript 和PHP 数据
验证及错误处理 368
16.1 使用 JavaScript 验证用户输入 368
16.1.1 validate.html 文档(第一部分) .369
16.1.2 validate.html 文档(第二部分) .371
16.2 正则表达式 375
16.2.1 通过元字符匹配 375
16.2.2 字符模糊匹配 375
16.2.3 使用括号分组 377
16.2.4 字符类 377
16.2.5 指明范围 .378
16.2.6 否定 378
16.2.7 几个更复杂的例子 .378
16.2.8 元字符小结.381
16.2.9 通用修饰符.383
16.2.10 在 JavaScript 中使用正则表达式 383
16.2.11 在 PHP 中使用正则表达式 384
16.3 PHP 验证之后重新显示表单 385
16.4 思考题 .391
第17 章 使用异步通信 393
17.1 异步通信是什么? 394
17.2 使用 XMLHttpRequest 394
17.2.1 首个异步程序 396
17.2.2 把 POST 方法换成 GET 方法 401
17.2.3 发送 XML 请求 403
17.2.4 使用框架处理异步通信 408
17.3 思考题 .408
第18 章 CSS 入门 410
18.1 导入样式表 411
18.1.1 在 HTML 中导入 CSS 412
18.1.2 内嵌样式 .412
18.2 使用 ID 412
18.3 使用类 .413
18.4 使用分号 413
18.5 CSS 规则 413
18.5.1 声明多个属性 414
18.5.2 使用注释 .415
18.6 样式类型 415
18.6.1 默认样式 .415
18.6.2 用户样式 .416
18.6.3 外部样式表.417
18.6.4 内部样式 .417
18.6.5 行内样式 .417
18.7 CSS 选择符 417
18.7.1 类型选择符.417
18.7.2 后代选择符.418
18.7.3 子代选择符.419
18.7.4 ID 选择符 420
18.7.5 类选择符 .421
18.7.6 属性选择符.421
18.7.7 通用选择符.422
18.7.8 成组选择 .422
18.8 CSS 层叠规则 .423
18.8.1 样式表创建方 423
18.8.2 样式表创建方法 424
18.8.3 样式表选择符 424
计算特指度 425
18.9 div 和 span 元素之间的区别 427
18.10 度量单位 .429
18.11 字体排版 .430
18.11.1 font-family 431
18.11.2 font-style432
18.11.3 font-size .432
18.11.4 font-weight 432
18.12 管理文本样式 433
18.12.1 装饰效果 433
18.12.2 间距 .434
18.12.3 对齐方式 434
18.12.4 大小写转换 435
18.12.5 缩进 .435
18.13 CSS 颜色 .436
18.13.1 颜色字符串的简写形式 .436
18.13.2 渐变 .437
18.14 定位元素 .438
18.14.1 绝对定位 439
18.14.2 相对定位 439
18.14.3 固定定位 440
18.15 伪类 442
18.16 简写规则 .444
18.17 盒模型和布局 445
18.17.1 设置外边距 445
18.17.2 添加边框 447
18.17.3 调整内边距 448
18.17.4 对象内容 449
18.18 思考题 450
第19 章 CSS3 新增特性 451
19.1 属性选择符 452
匹配部分字符串 .452
19.2 box-sizing 属性 454
19.3 CSS3 背景 .454
19.3.1 background-clip 属性.454
19.3.2 background-origin 属性 456
19.3.3 background-size 属性 456
19.3.4 使用 auto 值 457
19.3.5 多个背景 457
19.4 CSS3 边框 .459
19.4.1 border-color 属性.459
19.4.2 border-radius 属性 460
19.5 盒子投影 463
19.6 元素溢出 464
19.7 多栏布局 464
19.8 颜色和不透明度 .466
19.8.1 HSL 颜色 .466
19.8.2 HSLA 颜色 .467
19.8.3 RGB 颜色 467
19.8.4 RGBA 颜色 468
19.8.5 opacity 属性 468
19.9 文本效果 468
19.9.1 text-shadow 属性 .469
19.9.2 text-overflow 属性 469
19.9.3 word-wrap 属性 470
19.10 Web 字体 .470
Google Web 字体 471
19.11 变形 473
3D 变形 474
19.12 过渡 475
19.12.1 要过渡的属性 .476
19.12.2 过渡持续时间 .476
19.12.3 过渡延迟 476
19.12.4 过渡时序 476
19.12.5 简写句法 477
19.13 思考题 479
第20 章 通过JavaScript 访问CSS 480
20.1 再谈 getElementById 函数 480
20.1.1 O 函数 480
20.1.2 S 函数 481
20.1.3 C 函数 482
20.1.4 引入这些函数 483
20.2 通过 JavaScript 访问 CSS 属性 483
20.2.1 常用属性 .484
20.2.2 其他属性 .485
20.3 行内 JavaScript 487
20.3.1 this 关键字 .487
20.3.2 在
|
內容試閱:
|
前言
PHP 和MySQL 这一组合是开发数据库驱动的动态网站最便捷的工具,虽然面对各种集成框架(例如Ruby on Rails)的冲击,但仍保持自己的优势。这两个工具都是开源的(微软 .NET 框架则不是),可免费使用,是 Web 开发的上上之选。
在成为开发者的路上,不管用的是UNIXLinux 还是 WindowsApache 平台,都要掌握这些技术。两者再结合 JavaScript、jQuery、CSS 和HTML5,便可以开发出Facebook、Twitter 和 Gmail 这样的行业标杆级网站。
读者对象
本书的目标读者是想学习如何高效创建动态网站的人。这可能包括已经知道如何创建动态网站,但希望进一步提升技能的站长和图形设计师,以及高中和大学学生、应届毕业生和自学成才的人。
本书讲的虽然是 PHP、MySQL、JavaScript、CSS 和 HTML5 的核心技术,然而,只要想学习响应式 Web 设计背后相关的知识,从中定能获益良多,何况本书还涵盖jQuery 和jQuery Mobile 库的知识。
预备知识
本书假设你对 HTML 有基本了解,至少能拼凑出一个简单的静态网站,但是不要求事先了解 PHP、MySQL、JavaScript、CSS 或 HTML5。然而,如果知道一点,阅读本书的过程将轻松很多。
MySQL in a Nutshell,Russell Dyer 著。
JavaScript: The Definitive Guide,David Flanagan 著。
CSS: The Definitive Guide,Eric A. Meyer 和 Estelle Weyl 著。
HTML5: The Missing Manual,Matthew MacDonald 著。
排版约定
本书采用下述排版约定:
普通文本(Plain text)
表示菜单标题、选项和按钮。
斜体(Italic)
表示新术语、URL、电子邮件地址、文件名、扩展名、路径、目录 和 UNIX 实用工具。
也用于表示数据库、表和列的名称。
等宽字体(Constant Width)
表示命令和命令行选项、变量、其他代码元素、HTML 标签和文件的内容。
粗体等宽字体(Constant width bold)
表示程序的输出,以及突出显示要讨论的代码。
斜体等宽字体(Constant width italic)
表示应该替换成用户提供的值。
使用代码示例
本书的补充材料(代码示例、习题等)可到http:lpmj.net 网站下载。
本书是帮你完成工作的。一般来说,如果本书提供了示例代码,你可以把它用在你的程序或文档中。除非你使用了很大一部分代码,否则无需联系我们获得许可。比如,用本书的几个代码片段写一个程序就无需获得许可,销售或分发 OReilly 图书的示例光盘则需要获得许可;引用本书中的示例代码回答问题无需获得许可,将书中大量的代码放到你的产品文档中则需要获得许可。
我们希望但并不强制要求你在引用本书内容时加上引用说明。引用说明一般包括书名、作者、出版社和 ISBN。比如:Learning PHP, MySQL & JavaScript by Robin Nixon OReilly. Copyright 2018 Robin Nixon, 978-1-491-97891-7.。
如果你觉得自己对示例代码的用法超出了上述许可的范围,请通过permissions@oreilly.com 与我们联系。
OReilly 在线学习平台(OReilly Online Learning)
近40 年来,OReilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。
我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。OReilly 的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及OReilly 和200 多家其他出版商提供的大量文本和视频资源。有关的更多信息,请访问http:oreilly.com。
联系我们
请把对本书的评价和问题发给出版社。
美国:
OReilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
勘误、示例和其他信息可到 http:shop.oreilly.comproduct0636920063988.do 上获取。
对本书的评论或技术疑问,可以发电子邮件到 bookquestions@oreilly.com。
欲了解本社图书、课程、会议和新闻等更多信息,请访问我们的网站 http:www.oreilly.com。
我们的Facebook:http:facebook.comoreilly。
我们的Twitter:http:twitter.comoreillymedia。
我们的YouTube:http:www.youtube.comoreillymedia。
致谢
我想再次感谢编辑 Andy Oram,以及为本书付出汗水的每个人,感谢 Jon Reid、Michal pa?ek 和 John Craig 全面的技术审阅,感谢 Melanie Yarbrough 的监督,感谢Rachel Head 的审稿,感谢 Rachel Monaghan 的校对,感谢 Rebecca Demarest 绘制的插图,感谢 Judy McConville 编制索引,感谢 Karen Montgomery 最初为本书绘制的蜜袋鼯封面,感谢 Randy Comer 设计的最新版封面,感谢为这一版提交勘误和提出建议的每个人。
|
|