PHP、MySQL与JavaScript学习手册(第六版)
Robin Nixon
安道 译
出版时间:2022年10月
页数:770
“这是一本很棒的入门书,介绍了几门重要的开发语言。这本书条理清晰、行文流畅、内容丰富,很快就能让你掌握创建动态网站的技术,而且会让你动手开发一个基本的社交网络网站。”
——Albert Wiersch
CSE HTML Validator开发者

即使你只有基本的HTML知识,也能把开源技术和Web标准有机结合起来,构建数据驱动的交互式网站。这是一本实用的指南,经过全面更新,现已使用如今最新的Web编程核心技术,涵盖PHP、MySQL、JavaScript、CSS、HTML5、jQuery和强大的React库。
阅读本书,Web设计人员将一一学习这些技术,并且养成良好的Web编程习惯,甚至还将了解如何针对移动设备优化网站。我们将综合应用所学的知识,构建一个功能完善的社交网络网站,在桌面和移动浏览器中都有精美的外观。
● 探讨MySQL,从数据库结构到复杂的查询。
● 使用PHP内置的增强型MySQL接口PDO扩展。
● 创建适用于不同用户的动态PHP网页。
● 管理cookie和会话,保持较高的安全性。
● 借助React库增强JavaScript语言。
● 使用Ajax在后台处理浏览器与服务器之间的通信。
● 掌握装饰网页的CSS技能。
● 使用HTML5特性,包括地理定位、音频、视频和画布元素。
● 把网站改造成移动Web应用。
  1. 前言
  2. 第1章 动态Web内容概述
  3. 1.1 HTTP和HTML:Berners-Lee成名的关键
  4. 1.2 请求-响应过程
  5. 1.3 PHP、MySQL、JavaScript、CSS和HTML5的优势
  6. 1.3.1 MariaDB:MySQL的同胞兄弟
  7. 1.3.2 使用PHP
  8. 1.3.3 使用MySQL
  9. 1.3.4 使用JavaScript
  10. 1.3.5 使用CSS
  11. 1.4 于是HTML5出现了
  12. 1.5 Apache Web服务器
  13. 1.6 处理移动设备
  14. 1.7 关于开源
  15. 1.8 综合应用
  16. 1.9 思考题
  17. 第2章 搭建开发服务器
  18. 2.1 WAMP、MAMP或LAMP是什么?
  19. 2.2 在Windows中安装AMPPS
  20. 2.2.1 测试安装结果
  21. 2.2.2 访问文档根目录(Windows)
  22. 2.2.3 其他WAMP
  23. 2.3 在macOS中安装AMPPS
  24. 2.4 在Linux中安装LAMP
  25. 2.5 远程工作
  26. 2.5.1 登录
  27. 2.5.2 使用SFTP或FTPS
  28. 2.6 使用代码编辑器
  29. 2.7 使用IDE
  30. 2.8 思考题
  31. 第3章 PHP入门
  32. 3.1 在HTML代码中嵌入PHP
  33. 3.2 本书示例
  34. 3.3 PHP语言结构
  35. 3.3.1 注释
  36. 3.3.2 基本句法
  37. 3.3.3 变量
  38. 3.3.4 运算符
  39. 3.3.5 变量赋值
  40. 3.3.6 多行字符串
  41. 3.3.7 变量类型
  42. 3.3.8 常量
  43. 3.3.9 预定义的常量
  44. 3.3.10 echo和print命令的区别
  45. 3.3.11 函数
  46. 3.3.12 变量作用域
  47. 3.4 思考题
  48. 第4章 PHP表达式和控制流
  49. 4.1 表达式
  50. 4.1.1 TRUE或FALSE
  51. 4.1.2 字面量和变量
  52. 4.2 运算符
  53. 4.2.1 运算符优先级
  54. 4.2.2 结合性
  55. 4.2.3 关系运算符
  56. 4.3 条件语句
  57. 4.3.1 if语句
  58. 4.3.2 else语句
  59. 4.3.3 elseif语句
  60. 4.3.4 switch语句
  61. 4.3.5 三元运算符
  62. 4.4 循环
  63. 4.4.1 while循环
  64. 4.4.2 do...while循环
  65. 4.4.3 for循环
  66. 4.4.4 跳出循环
  67. 4.4.5 continue语句
  68. 4.5 隐式和显式类型转换
  69. 4.6 PHP动态链接
  70. 4.7 动态链接实例
  71. 4.8 思考题
  72. 第5章 PHP函数和对象
  73. 5.1 PHP函数
  74. 5.1.1 定义函数
  75. 5.1.2 返回一个值
  76. 5.1.3 返回一个数组
  77. 5.1.4 引用传参
  78. 5.1.5 返回全局变量
  79. 5.1.6 变量作用域小结
  80. 5.2 引入和导入文件
  81. 5.2.1 include语句
  82. 5.2.2 使用include_once
  83. 5.2.3 使用require和require_once
  84. 5.3 PHP不同版本的兼容性
  85. 5.4 PHP对象
  86. 5.4.1 术语
  87. 5.4.2 声明一个类
  88. 5.4.3 创建对象
  89. 5.4.4 访问对象
  90. 5.4.5 克隆对象
  91. 5.4.6 构造方法
  92. 5.4.7 析构方法
  93. 5.4.8 编写方法
  94. 5.4.9 声明属性
  95. 5.4.10 声明常量
  96. 5.4.11 属性和方法的作用域
  97. 5.4.12 静态方法
  98. 5.4.13 静态属性
  99. 5.4.14 继承
  100. 5.5 思考题
  101. 第6章 PHP数组
  102. 6.1 基本的数据存取
  103. 6.1.1 数字索引数组
  104. 6.1.2 关联数组
  105. 6.1.3 使用array关键字赋值
  106. 6.2 foreach...as循环
  107. 6.3 多维数组
  108. 6.4 使用数组函数
  109. 6.4.1 is_array
  110. 6.4.2 count
  111. 6.4.3 sort
  112. 6.4.4 shuffle
  113. 6.4.5 explode
  114. 6.4.6 extract
  115. 6.4.7 compact
  116. 6.4.8 reset
  117. 6.4.9 end
  118. 6.5 思考题
  119. 第7章 实用PHP技术
  120. 7.1 使用printf
  121. 7.1.1 设置精度
  122. 7.1.2 填补字符串
  123. 7.1.3 使用sprintf
  124. 7.2 日期和时间函数
  125. 7.2.1 日期常量
  126. 7.2.2 使用checkdate
  127. 7.3 处理文件
  128. 7.3.1 检查文件是否存在
  129. 7.3.2 创建文件
  130. 7.3.3 从文件中读取内容
  131. 7.3.4 复制文件
  132. 7.3.5 移动文件
  133. 7.3.6 删除文件
  134. 7.3.7 更新文件
  135. 7.3.8 多方存取时锁定文件
  136. 7.3.9 读取整个文件
  137. 7.3.10 上传文件
  138. 7.4 系统调用
  139. 7.5 XHTML还是HTML5?
  140. 7.6 思考题
  141. 第8章 MySQL入门
  142. 8.1 MySQL基础知识
  143. 8.2 数据库术语概览
  144. 8.3 通过命令行访问MySQL
  145. 8.3.1 启动命令行接口
  146. 8.3.2 使用命令行接口
  147. 8.3.3 MySQL命令
  148. 8.3.4 数据类型
  149. 8.4 索引
  150. 8.4.1 创建索引
  151. 8.4.2 查询MySQL数据库
  152. 8.4.3 联结表
  153. 8.4.4 使用逻辑运算符
  154. 8.5 MySQL函数
  155. 8.6 通过phpMyAdmin访问MySQL
  156. 8.7 思考题
  157. 第9章 精通MySQL
  158. 9.1 数据库设计
  159. 9.2 规范化
  160. 9.2.1 第一范式
  161. 9.2.2 第二范式
  162. 9.2.3 第三范式
  163. 9.2.4 什么时候不做规范化
  164. 9.3 关系
  165. 9.3.1 一对一关系
  166. 9.3.2 一对多关系
  167. 9.3.3 多对多关系
  168. 9.3.4 数据库的匿名性
  169. 9.4 事务
  170. 9.4.1 事务存储引擎
  171. 9.4.2 使用BEGIN
  172. 9.4.3 使用COMMIT
  173. 9.4.4 使用ROLLBACK
  174. 9.5 使用EXPLAIN
  175. 9.6 备份和还原
  176. 9.6.1 使用mysqldump
  177. 9.6.2 创建备份文件
  178. 9.6.3 从备份文件还原
  179. 9.6.4 转储CSV格式
  180. 9.6.5 做好备份计划
  181. 9.7 思考题
  182. 第10章 PHP 8和MySQL 8新特性
  183. 10.1 关于本章
  184. 10.2 PHP 8
  185. 10.2.1 具名参数
  186. 10.2.2 表征
  187. 10.2.3 构造方法属性
  188. 10.2.4 即时编译
  189. 10.2.5 联合类型
  190. 10.2.6 空值安全运算符
  191. 10.2.7 match表达式
  192. 10.2.8 新增函数
  193. 10.3 MySQL 8
  194. 10.3.1 SQL的更新
  195. 10.3.2 JSON(JavaScript Object Notation)
  196. 10.3.3 地理信息支持
  197. 10.3.4 可靠性
  198. 10.3.5 速度和性能
  199. 10.3.6 管理
  200. 10.3.7 安全性
  201. 10.4 思考题
  202. 第11章 使用PHP访问MySQL
  203. 11.1 使用PHP查询MySQL数据库
  204. 11.1.1 过程
  205. 11.1.2 创建登录文件
  206. 11.1.3 连接MySQL数据库
  207. 11.2 一个实例
  208. 11.2.1 $_POST数组
  209. 11.2.2 删除记录
  210. 11.2.3 显示表单
  211. 11.2.4 查询数据库
  212. 11.2.5 运行程序
  213. 11.3 MySQL实践
  214. 11.3.1 创建表
  215. 11.3.2 描述表
  216. 11.3.3 删除表
  217. 11.3.4 添加数据
  218. 11.3.5 检索数据
  219. 11.3.6 更新数据
  220. 11.3.7 删除数据
  221. 11.3.8 使用AUTO_INCREMENT
  222. 11.3.9 执行额外的查询
  223. 11.4 防止黑客攻击
  224. 11.4.1 可以采取的措施
  225. 11.4.2 使用占位符
  226. 11.4.3 防止 JavaScript注入HTML
  227. 11.5 思考题
  228. 第12章 表单处理
  229. 12.1 构建表单
  230. 12.2 获取提交的数据
  231. 12.2.1 默认值
  232. 12.2.2 输入类型
  233. 12.2.3 净化输入
  234. 12.3 一个示例程序
  235. 12.4 HTML5功能增强
  236. 12.4.1 autocomplete属性
  237. 12.4.2 autofocus属性
  238. 12.4.3 placeholder属性
  239. 12.4.4 required属性
  240. 12.4.5 覆盖属性
  241. 12.4.6 width和height属性
  242. 12.4.7 min和max属性
  243. 12.4.8 step属性
  244. 12.4.9 form属性
  245. 12.4.10 list属性
  246. 12.4.11 颜色输入框
  247. 12.4.12 数字和值域输入框
  248. 12.4.13 日期和时间选择器
  249. 12.5 思考题
  250. 第13章 cookie、会话和身份验证
  251. 13.1 在PHP中使用cookie
  252. 13.1.1 设置cookie
  253. 13.1.2 访问cookie
  254. 13.1.3 销毁cookie
  255. 13.2 HTTP身份验证
  256. 13.2.1 存储用户名和密码
  257. 13.2.2 一个示例程序
  258. 13.3 使用会话
  259. 13.3.1 开始会话
  260. 13.3.2 结束会话
  261. 13.3.3 设置超时时间
  262. 13.3.4 会话的安全性
  263. 13.4 思考题
  264. 第14章 探索JavaScript
  265. 14.1 JavaScript和HTML文本
  266. 14.1.1 在文档头部引入脚本
  267. 14.1.2 老旧和非标准浏览器
  268. 14.1.3 引入JavaScript文件
  269. 14.1.4 调试JavaScript错误
  270. 14.2 使用注释
  271. 14.3 分号
  272. 14.4 变量
  273. 14.4.1 字符串变量
  274. 14.4.2 数值变量
  275. 14.4.3 数组
  276. 14.5 运算符
  277. 14.5.1 算术运算符
  278. 14.5.2 赋值运算符
  279. 14.5.3 比较运算符
  280. 14.5.4 逻辑运算符
  281. 14.5.5 递增、递减和简短赋值运算符
  282. 14.5.6 字符串拼接
  283. 14.5.7 转义字符
  284. 14.6 变量类型
  285. 14.7 函数
  286. 14.8 全局变量
  287. 14.9 局部变量
  288. 14.10 文档对象模型
  289. 14.10.1 $符号的另一个用途
  290. 14.10.2 使用DOM
  291. 14.11 关于document.write
  292. 14.11.1 使用console.log
  293. 14.11.2 使用alert
  294. 14.11.3 写入元素
  295. 14.11.4 使用document.write
  296. 14.12 思考题
  297. 第15章 JavaScript表达式和控制流
  298. 15.1 表达式
  299. 15.2 字面量和变量
  300. 15.3 运算符
  301. 15.3.1 运算符优先级
  302. 15.3.2 结合性
  303. 15.3.3 关系运算符
  304. 15.4 with语句
  305. 15.5 使用onerror
  306. 15.6 使用try...catch
  307. 15.7 条件语句
  308. 15.7.1 if语句
  309. 15.7.2 else语句
  310. 15.7.3 switch语句
  311. 15.7.4 ?运算符
  312. 15.8 循环
  313. 15.8.1 while循环
  314. 15.8.2 do...while循环
  315. 15.8.3 for循环
  316. 15.8.4 跳出循环
  317. 15.8.5 continue语句
  318. 15.9 显式转换类型
  319. 15.10 思考题
  320. 第16章 JavaScript函数、对象和数组
  321. 16.1 JavaScript函数
  322. 16.1.1 定义函数
  323. 16.1.2 返回一个值
  324. 16.1.3 返回一个数组
  325. 16.2 JavaScript对象
  326. 16.2.1 声明类
  327. 16.2.2 创建对象
  328. 16.2.3 访问对象
  329. 16.2.4 prototype关键字
  330. 16.3 JavaScript数组
  331. 16.3.1 数字数组
  332. 16.3.2 关联数组
  333. 16.3.3 多维数组
  334. 16.3.4 使用数组方法
  335. 16.4 思考题
  336. 第17章 JavaScript和PHP数据验证及错误处理
  337. 17.1 使用JavaScript验证用户输入
  338. 17.1.1 validate.html文档(第一部分)
  339. 17.1.2 validate.html文档(第二部分)
  340. 17.2 正则表达式
  341. 17.2.1 通过元字符匹配
  342. 17.2.2 字符模糊匹配
  343. 17.2.3 使用括号分组
  344. 17.2.4 字符类
  345. 17.2.5 指明范围
  346. 17.2.6 否定
  347. 17.2.7 几个更复杂的例子
  348. 17.2.8 元字符小结
  349. 17.2.9 通用修饰符
  350. 17.2.10 在JavaScript中使用正则表达式
  351. 17.2.11 在PHP中使用正则表达式
  352. 17.3 PHP验证之后重新显示表单
  353. 17.4 思考题
  354. 第18章 使用异步通信
  355. 18.1 什么是异步通信?
  356. 18.2 使用XMLHttpRequest
  357. 18.2.1 首个异步程序
  358. 18.2.2 把POST方法换成GET方法
  359. 18.2.3 发送XML请求
  360. 18.2.4 使用框架处理异步通信
  361. 18.3 思考题
  362. 第19章 CSS入门
  363. 19.1 导入样式表
  364. 19.1.1 在HTML中导入CSS
  365. 19.1.2 内嵌样式
  366. 19.2 使用ID
  367. 19.3 使用类
  368. 19.4 使用分号
  369. 19.5 CSS规则
  370. 19.5.1 声明多个属性
  371. 19.5.2 使用注释
  372. 19.6 样式类型
  373. 19.6.1 默认样式
  374. 19.6.2 用户样式
  375. 19.6.3 外部样式表
  376. 19.6.4 内部样式
  377. 19.6.5 行内样式
  378. 19.7 CSS选择符
  379. 19.7.1 类型选择符
  380. 19.7.2 后代选择符
  381. 19.7.3 子代选择符
  382. 19.7.4 ID选择符
  383. 19.7.5 类选择符
  384. 19.7.6 属性选择符
  385. 19.7.7 通用选择符
  386. 19.7.8 成组选择
  387. 19.8 CSS层叠规则
  388. 19.8.1 样式表创建方
  389. 19.8.2 样式表创建方法
  390. 19.8.3 样式表选择符
  391. 19.9 div和span元素之间的区别
  392. 19.10 度量单位
  393. 19.11 字体排版
  394. 19.11.1 font-family
  395. 19.11.2 font-style
  396. 19.11.3 font-size
  397. 19.11.4 font-weight
  398. 19.12 管理文本样式
  399. 19.12.1 装饰效果
  400. 19.12.2 间距
  401. 19.12.3 对齐方式
  402. 19.12.4 大小写转换
  403. 19.12.5 缩进
  404. 19.13 CSS颜色
  405. 19.13.1 颜色字符串的简写形式
  406. 19.13.2 渐变
  407. 19.14 定位元素
  408. 19.14.1 绝对定位
  409. 19.14.2 相对定位
  410. 19.14.3 固定定位
  411. 19.15 伪类
  412. 19.16 简写规则
  413. 19.17 盒模型和布局
  414. 19.17.1 设置外边距
  415. 19.17.2 添加边框
  416. 19.17.3 调整内边距
  417. 19.17.4 对象内容
  418. 19.18 思考题
  419. 第20章 CSS3新增特性
  420. 20.1 属性选择符
  421. 20.2 box-sizing属性
  422. 20.3 CSS3背景
  423. 20.3.1 background-clip属性
  424. 20.3.2 background-origin属性
  425. 20.3.3 background-size属性
  426. 20.3.4 使用auto值
  427. 20.3.5 多个背景
  428. 20.4 CSS3边框
  429. 20.4.1 border-color属性
  430. 20.4.2 border-radius属性
  431. 20.5 盒子投影
  432. 20.6 元素溢出
  433. 20.7 多栏布局
  434. 20.8 颜色和不透明度
  435. 20.8.1 HSL颜色
  436. 20.8.2 HSLA颜色
  437. 20.8.3 RGB颜色
  438. 20.8.4 RGBA颜色
  439. 20.8.5 opacity属性
  440. 20.9 文本效果
  441. 20.9.1 text-shadow属性
  442. 20.9.2 text-overflow属性
  443. 20.9.3 word-wrap属性
  444. 20.10 Web字体
  445. 20.11 变形
  446. 20.12 过渡
  447. 20.12.1 要过渡的属性
  448. 20.12.2 过渡持续时间
  449. 20.12.3 过渡延迟
  450. 20.12.4 过渡时序
  451. 20.12.5 简写句法
  452. 20.13 思考题
  453. 第21章 通过JavaScript访问CSS
  454. 21.1 再谈getElementById函数
  455. 21.1.1 O函数
  456. 21.1.2 S函数
  457. 21.1.3 C函数
  458. 21.1.4 引入这些函数
  459. 21.2 通过JavaScript访问CSS属性
  460. 21.2.1 常用属性
  461. 21.2.2 其他属性
  462. 21.3 行内JavaScript
  463. 21.3.1 this关键字
  464. 21.3.2 在<script>标签中为对象附加事件
  465. 21.3.3 其他事件
  466. 21.4 添加元素
  467. 21.4.1 删除元素
  468. 21.4.2 添加和删除元素的替代方案
  469. 21.5 使用中断
  470. 21.5.1 使用setTimeout
  471. 21.5.2 取消超时
  472. 21.5.3 使用setInterval
  473. 21.5.4 在动画中使用中断
  474. 21.6 思考题
  475. 第22章 jQuery入门
  476. 22.1 为什么选择jQuery?
  477. 22.2 引入jQuery
  478. 22.2.1 选择正确的版本
  479. 22.2.2 自己下载
  480. 22.2.3 使用内容分发网络
  481. 22.2.4 定制jQuery
  482. 22.3 jQuery句法
  483. 22.3.1 一个简单的例子
  484. 22.3.2 避免库之间出现冲突
  485. 22.4 选择符
  486. 22.4.1 css方法
  487. 22.4.2 元素选择符
  488. 22.4.3 ID选择符
  489. 22.4.4 类选择符
  490. 22.4.5 组合选择符
  491. 22.5 处理事件
  492. 22.6 等待文档准备就绪
  493. 22.7 事件函数和属性
  494. 22.7.1 blur和focus事件
  495. 22.7.2 this关键字
  496. 22.7.3 click和dblclick事件
  497. 22.7.4 keypress事件
  498. 22.7.5 贴心编程
  499. 22.7.6 mousemove事件
  500. 22.7.7 其他鼠标事件
  501. 22.7.8 其他鼠标方法
  502. 22.7.9 submit事件
  503. 22.8 特殊效果
  504. 22.8.1 隐藏和显现
  505. 22.8.2 toggle方法
  506. 22.8.3 淡入和淡出
  507. 22.8.4 上滑和下滑
  508. 22.8.5 动画
  509. 22.8.6 停止动画
  510. 22.9 处理DOM
  511. 22.9.1 text和html两个方法之间的区别
  512. 22.9.2 val和attr方法
  513. 22.9.3 添加和删除元素
  514. 22.10 动态应用类
  515. 22.11 修改尺寸
  516. 22.11.1 width和height方法
  517. 22.11.2 innerWidth和innerHeight方法
  518. 22.11.3 outerWidth和outerHeight方法
  519. 22.12 遍历DOM
  520. 22.12.1 父元素
  521. 22.12.2 子元素
  522. 22.12.3 同辈元素
  523. 22.12.4 选择下一个和前一个元素
  524. 22.12.5 遍历jQuery选集
  525. 22.12.6 is方法
  526. 22.13 抛开选择符使用jQuery
  527. 22.13.1 $.each方法
  528. 22.13.2 $.map方法
  529. 22.14 异步通信
  530. 22.14.1使用POST方法
  531. 22.14.2 使用GET方法
  532. 22.15 插件
  533. 22.15.1 jQuery用户界面插件
  534. 22.15.2 其他插件
  535. 22.16 思考题
  536. 第23章 jQuery Mobile入门
  537. 23.1 引入jQuery Mobile
  538. 23.2 开始使用
  539. 23.3 链接页面
  540. 23.3.1 非异步链接
  541. 23.3.2 链接文档内的多个页面
  542. 23.3.3 页面过渡效果
  543. 23.4 装饰按钮
  544. 23.5 处理列表
  545. 23.5.1 可筛选的列表
  546. 23.5.2 列表分组标题
  547. 23.6 接下来
  548. 23.7 思考题
  549. 第24章 React入门
  550. 24.1 React到底能解决什么问题
  551. 24.2 获取React文件
  552. 24.3 创建首个React项目
  553. 24.3.1 把类换成函数
  554. 24.3.2 纯函数和非纯函数:黄金法则
  555. 24.3.3 同时使用类和函数
  556. 24.3.4 属性和组件
  557. 24.3.5 类和函数之间的区别
  558. 24.4 React状态和生命周期
  559. 24.5 React中的事件
  560. 24.6 JSX行内条件语句
  561. 24.7 使用列表和键
  562. 24.8 处理表单
  563. 24.8.1 使用文本输入框
  564. 24.8.2 使用多行文本输入框
  565. 24.8.3 使用选择框
  566. 24.9 React Native
  567. 24.9.1 创建React Native应用
  568. 24.9.2 扩展阅读
  569. 24.9.3 更上层楼
  570. 24.10 思考题
  571. 第25章 HTML5入门
  572. 25.1 画布元素
  573. 25.2 地理定位
  574. 25.3 音频和视频
  575. 25.4 表单
  576. 25.5 本地存储
  577. 25.6 Web职程
  578. 25.7 思考题
  579. 第26章 HTML5画布
  580. 26.1 创建和访问画布
  581. 26.1.1 toDataURL函数
  582. 26.1.2 指定图像类型
  583. 26.1.3 fillRect方法
  584. 26.1.4 clearRect方法
  585. 26.1.5 strokeRect方法
  586. 26.1.6 三者合用
  587. 26.1.7 createLinearGradient方法
  588. 26.1.8 addColorStop方法详解
  589. 26.1.9 createRadialGradient方法
  590. 26.1.10 填充图案
  591. 26.2 在画布上书写文本
  592. 26.2.1 strokeText方法
  593. 26.2.2 textBaseline属性
  594. 26.2.3 font属性
  595. 26.2.4 textAlign属性
  596. 26.2.5 fillText方法
  597. 26.2.6 measureText方法
  598. 26.3 绘制线条
  599. 26.3.1 lineWidth属性
  600. 26.3.2 lineCap和lineJoin属性
  601. 26.3.3 miterLimit属性
  602. 26.4 使用路径
  603. 26.4.1 moveTo和lineTo方法
  604. 26.4.2 stroke方法
  605. 26.4.3 rect方法
  606. 26.5 填充区域
  607. 26.5.1 clip方法
  608. 26.5.2 isPointInPath方法
  609. 26.6 绘制曲线
  610. 26.6.1 arc方法
  611. 26.6.2 arcTo方法
  612. 26.6.3 quadraticCurveTo方法
  613. 26.6.4 bezierCurveTo方法
  614. 26.7 处理图像
  615. 26.7.1 drawImage方法
  616. 26.7.2 调整图像尺寸
  617. 26.7.3 选择图像上的一个区域
  618. 26.7.4 复制画布
  619. 26.7.5 添加阴影
  620. 26.8 像素级编辑
  621. 26.8.1 getImageData方法
  622. 26.8.2 putImageData方法
  623. 26.8.3 createImageData方法
  624. 26.9 高级图形效果
  625. 26.9.1 globalCompositeOperation属性
  626. 26.9.2 globalAlpha属性
  627. 26.10 变形
  628. 26.10.1 scale方法
  629. 26.10.2 save和restore方法
  630. 26.10.3 rotate方法
  631. 26.10.4 translate方法
  632. 26.10.5 transform方法
  633. 26.10.6 setTransform方法
  634. 26.11 思考题
  635. 第27章 HTML5音频和视频
  636. 27.1 关于编码解码器
  637. 27.2 <audio>元素
  638. 27.3 <video>元素
  639. 27.4 思考题
  640. 第28章 其他HTML5特性
  641. 28.1 地理定位和GPS服务
  642. 28.2 其他定位方法
  643. 28.3 HTML5地理定位
  644. 28.4 本地存储
  645. 28.4.1 使用本地存储
  646. 28.4.2 localStorage对象
  647. 28.5 Web职程
  648. 28.6 拖放功能
  649. 28.7 跨文档通信
  650. 28.8 其他HTML5标签
  651. 28.9 思考题
  652. 第29章 综合应用
  653. 29.1 设计社交网络应用
  654. 29.2 网站源码
  655. 29.3 functions.php
  656. 29.4 header.php
  657. 29.5 setup.php
  658. 29.6 index.php
  659. 29.7 signup.php
  660. 29.7.1 检查用户名是否可用
  661. 29.7.2 登录
  662. 29.8 checkuser.php
  663. 29.9 login.php
  664. 29.10 profile.php
  665. 29.10.1 添加“关于我”文本
  666. 29.10.2 添加头像
  667. 29.10.3 处理图像
  668. 29.10.4 显示当前用户的个人资料
  669. 29.11 members.php
  670. 29.11.1 查看用户的个人资料
  671. 29.11.2 添加和删除好友
  672. 29.11.3 列出所有成员
  673. 29.12 friends.php
  674. 29.13 messages.php
  675. 29.14 logout.php
  676. 29.15 styles.css
  677. 29.16 javascript.js
  678. 29.17 思考题
  679. 附录 思考题参考答案
书名:PHP、MySQL与JavaScript学习手册(第六版)
作者:Robin Nixon
译者:安道 译
国内出版社:中国电力出版社
出版时间:2022年10月
页数:770
书号:978-7-5198-6974-8
原版书书名:Learning PHP, MySQL & JavaScript SIXTH EDITION
原版书出版商:O'Reilly Media
Robin Nixon
 
自20世纪80年代以来,Robin Nixon就一直从事计算机工作和撰写有关计算机的书籍(他的第一台计算机是一个具有4KB内存的笨重的Tandy TRS 80-1型)。他开发的一个网站提供给了世界上第一个由音乐版权持有者授权的广播电台。为了使人们在听音乐时还可继续上网,Robin还开发了第一个大家都熟知的弹出窗口。他还全职为英国一个主要的IT杂志出版社工作,在那里,他负责几项工作,包括编辑、宣传和唱片封面编辑,还出版了16本以上的书籍。
Robin Nixon 编写软件、开发网站和应用的经验已达 40 年。他还写了大量关于电脑和技术的文字,发表了 500 多篇杂志文章、30 多本书籍,其中很多被翻译成其他语言。此外,他还是一位多产的互联网视频教程导师。
除了 IT 之外,他的兴趣还包括心理学和激励学(他也写过这类文章)、人工智能研究、多种类型的音乐(不光听,还演奏)、玩耍和制作棋盘游戏、学习哲学和文化,以及品尝美食和美酒。
Robin 与妻子 Julie(专业护士和大学讲师)和五个孩子生活在英格兰东南海岸。另外,夫妻二人还收养了三个残疾儿童。Robin 在 Facebook 维护着一个页面(http://facebook.com/learning2program),关注最新的 Web 技术。
 
 
本书封面上的动物是蜜袋鼯(Petaurus breviceps)。蜜袋鼯体型小巧,长有灰色皮毛,成年后身长 6 到 7.5 英寸。蜜袋鼯尾巴的显著特色是尖端呈黑色,通常与身体一样长。它们长有皮薄膜,从手关节延伸到脚踝,利用空气动力,在树间滑行。
蜜袋鼯产于澳大利亚和塔斯马尼亚,喜欢与几只成年蜜袋鼯和幼崽住在桉树和其他大型树木的中空部分。
虽然蜜袋鼯群居在一起保卫自己的领地,但是它们并不总是和睦相处。处于支配地位的雄性蜜袋鼯会通过唾液标记族群的领地,用前额和胸部腺体产生的独特气味标记族群成员。这样,一旦有外来的蜜袋鼯接近,成员们便会得知。
由于蜜袋鼯天性好动,外形可爱,现已成为受欢迎的宠物。然而,蜜袋鼯是外来物种,饮食特殊、复杂;为了营造适宜的居住环境,不能使用比鸟笼小的笼子;蜜袋鼯玩耍和进食时经常失控;而且在一些州和国家,把蜜袋鼯作为家庭宠物饲养是违法的。
购买选项
定价:198.00元
书号:978-7-5198-6974-8
出版社:中国电力出版社