PHP、MySQL和Apache入门经典

出版社:人民邮电出版社
出版日期:2013-2-1
ISBN:9787115302700
作者:梅洛尼 (Julie C. Meloni)
页数:464页

作者简介

PHP、MySQL和Apache是Web应用开发的强大组合工具。《PHP、MySQL和Apache入门经典(第5版)》由Julie C.Meloni著,李军译,针对这三种主流工具的最新版本,逐步介绍了如何安装、配置和使用这些工具组合,并通过一些典型的项目案例,帮助读者开发出功能强大的Web应用。
全书分为6个部分共33章。第1部分“基础知识”,包括第1章到第4章,引领读者深入了解、安装和配置MySQL、Apache和PHP。第2部分“PHP语言结构”,包括第5章到第9章,讲解PHP语言基础,包括数组和对象这样的结构化元素。第3部分“深入编程”,包括第10章到第14章,介绍中级应用程序开发的主题,包括使用表单和文件、限制访问以及完成包含某个专门概念的小项目。第4部分“PHP和MySQL整合”,包括第15章到第18章,介绍使用数据库的一般方法。第5部分“基本项目”,包括第19章到第28章,介绍如何整合前面已经学习到的所有知识,使用PHP和MySQL执行一个特定任务。第6部分“管理和优化”,包括第29章到第33章,介绍管理和优化Apache和MySQL的方法。
《PHP、MySQL和Apache入门经典(第5版)》内容全面、讲解详细、由浅入深、实例丰富,而且考虑到读者使用不同操作系统和开发环境的需求。《PHP、MySQL和Apache入门经典(第5版)》可作为PHP、MySQL、Apache初学者的学习指南,也可作为Web开发技术人员的参考用书。

书籍目录

目 录第1部分 基础知识第1章 安装QuickStart向导 21.1 使用第三方的安装包 21.2 Linux/UNIX下的安装 31.3 在Windows上安装XAMPP 41.4 在Mac OS X上安装XAMPP 61.5 让XAMPP更安全 81.6 故障排除 9第2章 安装和配置MySQL 102.1 MySQL的当前版本和未来版本 102.2 如何获取MySQL 112.3 在Linux/UNIX上安装MySQL 112.4 在Mac OS X上安装MySQL 122.5 在Windows上安装MySQL 142.6 安装故障排除 182.7 基本安全规则 192.7.1 启动MySQL 192.7.2 增强MySQL连接的安全 202.8 MySQL权限系统简介 202.8.1 两步身份验证过程 212.8.2 添加用户 222.8.3 移除权限 232.9 小结 242.10 Q&A 242.11 实践练习 24问答题 24解答 25思考题 25第3章 安装和配置Apache 263.1 Apache的当前版本及未来版本 263.2 选择合适的安装方法 273.2.1 从源代码安装 273.2.2 安装一个二进制代码版本 273.3 在Linux/UNIX上安装Apache 273.3.1 下载Apache源代码 283.3.2 解压源代码 283.3.3 准备编译Apache 283.3.4 编译和安装Apache 293.4 在Mac OS X上安装Apache 303.5 在Windows上安装Apache 303.6 Apache配置文件结构 323.6.1 指令 323.6.2 容器 333.6.3 条件评估 343.6.4 ServerRoot指令 353.6.5 per-directory配置文件 353.7 Apache日志文件 363.7.1 access_log文件 363.7.2 error_log文件 363.7.3 其他文件 363.8 Apache相关命令 373.8.1 Apache服务器二进制程序 373.8.2 Apache控制脚本 383.9 第一次启动Apache 383.9.1 检查你的配置文件 383.9.2 启动Apache 393.10 故障排除 393.10.1 已有Web服务器 393.10.2 不允许绑定到端口 403.10.3 拒绝访问 403.10.4 错误组设置 403.11 小结 403.12 Q&A 403.13 实践练习 41练习题 41解答 41思考题 41第4章 安装和配置PHP 424.1 PHP的当前版本和未来版本 424.2 在带有Apache的Linux/UNIX上编译PHP 434.2.1 额外的Linux/UNIX配置选项 444.2.2 在Linux/UNIX上集成PHP和Apache 444.3 在Mac OS X上安装PHP 454.4 在Windows上安装PHP 454.5 php.ini基础 464.6 测试安装 474.7 获取安装帮助 474.8 PHP脚本基础 484.8.1 开始和结束一个PHP语句块 494.8.2 echo语句和print()函数 504.8.3 组合HTML和PHP 514.8.4 为PHP代码添加注释 524.9 小结 524.10 Q&A 52实践练习 53问答题 53解答 53思考题 54第2部分 PHP语言结构第5章 PHP的组成部分 565.1 变量 565.1.1 全局变量 575.1.2 超全局变量 585.2 数据类型 585.2.1 使用settype()来改变变量的数据类型 605.2.2 通过类型转换改变数据变量的类型 615.2.3 为何测试类型 635.3 操作符和表达式 635.3.1 赋值操作符 645.3.2 算术操作符 645.3.3 连接操作符 645.3.4 复合赋值操作符 655.3.5 自动增加和减少一个整型变量 665.3.6 比较操作符 665.3.7 使用逻辑操作符创建复杂的测试表达式 675.3.8 操作符优先级 685.4 常量 695.5 小结 705.6 Q&A 705.7 实践练习 71问答题 71解答 71思考题 72第6章 PHP的流程控制功能 736.1 转换流程 736.1.1 if语句 746.1.2 使用else子句的if语句 746.1.3 使用带有elseif子句的if语句 756.1.4 switch语句 766.1.5 使用?运算符 776.2 循环 786.2.1 while语句 786.2.2 do...while语句 796.2.3 for语句 796.2.4 用break语句跳出循环 806.2.5 用continue语句跳过迭代 826.2.6 嵌套循环 836.3 代码块和浏览器输出 846.4 小结 856.5 Q&A 866.6 实践练习 86练习题 86解答 86思考题 87第7章 使用函数 887.1 什么是函数 887.2 调用函数 897.3 定义一个函数 907.4 从用户定义的函数返回值 927.5 变量作用域 92  使用global语句访问变量 937.6 使用static语句在函数调用之间保存状态 957.7 关于参数的更多内容 967.7.1 为参数设置默认值 977.7.2 把变量引用传递给函数 987.8 测试函数是否存在 997.9 小结 1007.10 Q&A 1007.11 实践练习 101问答题 101解答 101思考题 102第8章 使用数组 1038.1 什么是数组 1038.2 创建数组 1048.2.1 创建关联数组 1048.2.2 创建多维数组 1058.3 一些和数组相关的函数 1078.4 小结 1088.5 Q&A 1088.6 实践练习 108问答题 108解答 108思考题 108第9章 使用对象 1109.1 创建一个对象 1109.1.1 对象的属性 1129.1.2 对象方法 1139.1.3 构造方法 1149.2 对象继承 1149.3 小结 1169.4 Q&A 1169.5 实践练习 116问答题 116解答 117思考题 117第3部分 深入编程第10章 使用字符串、日期和时间 12010.1 使用PHP格式化字符串 12110.1.1 使用printf() 12110.1.2 指定一个字段宽度 12410.1.3 参数交换 12610.1.4 存储一个格式化字符串 12710.2 了解PHP中的字符串 12710.2.1 索引字符串的一个注意事项 12710.2.2 使用strlen()获取一个字符串的长度 12810.2.3 使用strstr()获取一个字符串的子串 12810.2.4 使用strpos()找到一个子字符串的位置 12810.2.5 使用substr()提取一个字符串的一部分 12910.2.6 使用strtok()分解一个字符串 12910.3 在PHP中操作字符串 13110.3.1 使用trim()、ltrim()和strip_tags()整理一个字符串 13110.3.2 使用substr_replace()替换一个字符串的一部分 13210.3.3 使用str_replace()替换子字符串 13210.3.4 转换大小写 13310.3.5 使用wordwrap()和nl2br()换行文本 13410.3.6 使用explode()把字符串分解到数组 13510.4 使用PHP中的日期和时间函数 13510.4.1 使用time()获取日期 13510.4.2 使用getdate()转换一个时间戳 13610.4.3 使用date()转换一个时间戳 13710.4.4 使用mktime()创建时间戳 13910.4.5 使用checkdate()测试日期 14010.5 其他字符串、日期和时间函数 14010.6 小结 14010.7 实践练习 14110.8 Q&A 141问答题 141解答 142思考题 142第11章 使用表单 14311.1 创建一个简单的输入表单 14311.2 使用用户定义数组访问表单输入 14511.3 在单个页面上组合HTML和PHP代码 14711.4 使用隐藏字段来保存状态 14911.5 重定向用户 15011.6 根据表单提交发送邮件 15111.6.1 mail()函数的系统配置 15111.6.2 创建表单 15211.6.3 创建发送邮件的脚本 15311.6.4 使用HTML格式化邮件 15511.7 使用文件上传 15611.7.1 创建文件上传表单 15611.7.2 创建一个文件上传脚本 15711.8 小结 15911.9 Q&A 15911.10 实践练习 160问答题 160解答 160思考题 160第12章 使用Cookie和用户会话 16112.1 Cookie简介 16112.1.1 深入了解一个cookie 16212.1.2 访问cookies 16212.2 使用PHP设置一个cookie 163  删除一个cookie 16412.3 会话函数概览 16412.4 开始一个会话 16512.5 使用会话变量 16512.6 销毁会话和重置变量 16912.7 在一个带有注册用户的环境中使用会话 16912.7.1 使用注册的用户 17012.7.2 使用用户偏好 17012.8 小结 17012.9 Q&A 17112.10 实践练习 171问答题 171解答 171思考题 171第13章 使用文件和目录 17213.1 使用include语句包含文件 17213.1.1 从一个被包含文档返回一个值 17313.1.2 在控制结构中使用include语句 17413.1.3 使用include_once语句 17513.1.4 include_path命令 17513.2 验证文件 17613.2.1 使用file_exists()检查文件的存在性 17613.2.2 文件还是目录 17613.2.3 检查一个文件的状态 17713.2.4 使用filesize()确定文件的大小 17713.2.5 获取有关一个文件的日期信息 17713.2.6 编写一个执行多文件测试的函数 17813.3 创建并删除文件 17913.4 打开一个文件供写入、读取或添加 17913.5 读取文件 18013.5.1 使用fgets()和feof()从一个文件读取行 18013.5.2 使用fread()函数从文件读取任意数量的数据 18113.5.3 使用fgetc()从文件读取字符 18313.5.4 用file_get_contents()读取文件内容 18413.6 写入文件或向文件添加内容 18413.6.1 使用fwrite()或fputs()写入文件 18413.6.2 使用file_put_contents()写文件内容 18513.6.3 使用flock()锁定文件 18613.7 使用目录 18613.7.1 使用mkdir()创建目录 18613.7.2 使用rmdir()删除一个目录 18713.7.3 使用opendir()打开一个目录以供读取 18713.7.4 使用readdir()从一个目录读取内容 18713.8 使用popen()打开到进程和离开进程的管道 18813.9 使用exec()运行命令 19013.10 使用system()或passthru()运行命令 19113.11 小结 19213.12 Q&A 19313.13 实践练习 193问答题 193解答 194思考题 194第14章 使用图像 19514.1 理解图像创建过程 195  关于颜色 19614.2 对PHP的必要修改 19614.3 绘制一个新的图像 19714.3.1 绘制形状和线条 19714.3.2 使用颜色填充 19914.4 绘制有趣的饼图 20014.5 修改已有图像 20214.6 使用来自用户输入的图像创建图像 20414.7 使用脚本创建的图像 20814.8 小结 21014.9 Q&A 21014.10 实践练习 210问答题 210解答 210思考题 211第4部分 PHP与MySQL整合第15章 理解数据库设计过程 21415.1 良好的数据库设计的重要性 21415.2 表关系的类型 21515.2.1 一对一关系 21515.2.2 一对多关系 21615.2.3 多对多关系 21715.3 理解规范化 21815.3.1 平表带来的问题 21815.3.2 第一范式 21915.3.3 第二范式 21915.3.4 第三范式 22015.4 遵从设计过程 22015.5 小结 22115.6 Q&A 22215.7 实践练习 222问答题 222解答 222思考题 222第16章 SQL基本命令 22316.1 MySQL数据类型 22416.1.1 数字数据类型 22416.1.2 日期和时间类型 22516.1.3 字符串类型 22616.2 表的创建语法 22616.3 使用INSERT命令 227  进一步学习INSERT语句 22816.4 使用SELECT命令 22916.4.1 排序SELECT结果 23016.4.2 限制结果 23016.5 在查询中使用WHERE 23116.5.1 在WHERE子句中使用操作符 23216.5.2 使用LIKE比较字符串 23216.6 从多个表中查询 23316.6.1 使用JOIN 23516.6.2 使用子查询 23716.7 使用UPDATE命令来修改记录 23716.7.1 条件式UPDATE 23816.7.2 在UPDATE中使用已有的列值 23916.8 使用REPLACE命令 24016.9 使用DELETE命令 240  条件式DELETE 24116.10 MySQL中常用的字符串函数 24216.10.1 长度和连接函数 24216.10.2 截断和填充函数 24416.10.3 定位和位置函数 24616.10.4 子字符串函数 24616.10.5 字符串修改函数 24716.11 在MySQL中使用日期和时间函数 24816.11.1 操作日期 24816.11.2 操作月份和年份 25016.11.3 操作周 25116.11.4 操作小时、分钟和秒 25216.11.5 使用MySQL格式化日期和时间 25216.11.6 使用MySQL执行日期算术 25416.11.7 特殊函数和转换函数 25616.12 小结 25816.13 Q&A 25916.14 实践练习 259练习题 260解答 260思考题 260第17章 使用MySQL中的事务和存储过程 26117.1 什么是事务 26117.1.1 事务中使用的基本语法 26217.1.2 使用事务的例子 26217.2 什么是存储过程 26417.3 小结 26517.4 Q&A 26617.5 实践练习 266练习题 266解答 266思考题 266第18章 使用PHP和MySQL交互 26718.1 MySQL函数和MySQLi函数 26718.2 使用PHP连接MySQL 26718.2.1 进行连接 26818.2.2 执行查询 26918.2.3 获取错误消息 27018.3 使用MySQL数据 27018.3.1 避免SQL注入 27018.3.2 使用PHP插入数据 27118.3.3 使用PHP获取数据 27418.3.4 PHP中其他的MySQL函数 27618.4 小结 27618.5 Q&A 27618.6 实践练习 277练习题 277解答 277思考题 277第5部分 基本项目第19章 管理一个简单的邮件列表 28019.1 开发订阅机制 28019.1.1 创建subscribers表 28119.1.2 为共同函数创建一个包含文件 28119.1.3 创建订阅表单 28219.2 开发邮件发送机制 28619.3 小结 28819.4 Q&A 28919.5 实践练习 289问答题 289解答 289思考题 289第20章 创建一个在线地址簿 29020.1 规划和创建数据库表 29020.2 为共同函数创建一个包含文件 29220.3 创建一个菜单 29320.4 创建记录添加机制 29420.5 浏览记录 29920.6 创建记录的删除机制 30420.7 为一条记录添加子条目 30520.8 小结 31120.9 Q&A 31120.10 实践练习 312问答题 312解答 312思考题 312第21章 创建一个简单的讨论论坛 31321.1 设计数据库表 31321.2 为共同函数创建一个包含文件 31421.3 创建输入表单和脚本 31421.4 显示主题列表 31821.5 显示一个主题中的帖子 32021.6 向主题添加帖子 32321.7 小结 32621.8 Q&A 32621.9 实践练习 326问答题 327解答 327思考题 327第22章 创建一个在线商店 32822.1 规划和创建数据库表 32822.1.1 向store_categories表插入记录 33022.1.2 向store_items表插入记录 33022.1.3 向store_item_size表中插入记录 33122.1.4 向store_item_color表插入记录 33122.2 显示商品分类 33122.3 显示商品 33422.4 小结 33622.5 Q&A 33622.6 实践练习 336问答题 336解答 337思考题 337第23章 创建一个购物车机制 33823.1 规划和创建数据库表 33823.2 把购物车整合到商店 34023.2.1 把项目添加到购物车 34223.2.2 浏览购物车 34423.2.3 从购物车中删除项目 34623.3 支付方法和结账过程 34723.3.1 创建结账页面 34723.3.2 执行结账操作 34723.4 小结 34823.5 Q&A 34823.6 实践练习 349问答题 349解答 349思考题 349第24章 创建一个简单的日历 35024.1 构建一个简单的显示日历 35024.1.1 检查用户输入 35024.1.2 构建HTML表单 35124.1.3 创建日历表格 35324.1.4 向日历添加事件 35624.2 创建一个日历库 36224.3 小结 36724.4 Q&A 36724.5 实践练习 367问答题 367解答 367思考题 367第25章 限制对应用程序的访问 36825.1 验证概览 36825.1.1 客户机验证 36925.1.2 用户管理方法 36925.2 Apache验证模块功能 37025.2.1 基于文件的验证 37125.2.2 基于数据库文件的访问控制 37225.3 使用Apache进行访问控制 37325.3.1 实现访问规则 37325.3.2 应用访问规则 37425.4 组合Apache访问方法 37525.5 根据HTTP方法限制访问 37525.6 根据cookie值限制访问 37625.6.1 创建授权用户表 37625.6.2 创建登录表单和脚本 37725.6.3 测试auth cookie 37925.7 小结 38025.8 Q&A 38025.9 实践练习 381问答题 381解答 381思考题 382第26章 记录并监视Web服务器活动 38326.1 标准Apache访问日志 38326.1.1 确定记录什么 38426.1.2 记录对文件的访问 38626.1.3 记录对一个程序的访问 38726.2 标准Apache错误日志 38726.2.1 把错误记录到一个文件 38826.2.2 把错误记录到一个程序 38826.2.3 syslog守护进程参数 38826.2.4 LogLevel指令 38826.3 管理Apache日志 38926.3.1 解析主机名 38926.3.2 日志备份 38926.3.4 日志分析 39026.3.5 监视错误日志 39026.4 把自定义信息记录到一个数据库 39026.4.1 创建数据库表 39126.4.2 创建PHP代码段 39126.4.3 创建示例报表 39226.5 小结 39426.6 Q&A 39426.7 实践练习 394问答题 394解答 394思考题 395第27章 应用程序本地化 39627.1 关于国际化和本地化 39627.2 关于字符集 39727.3 环境修改 39827.3.1 Apache的配置修改 39827.3.2 PHP的配置修改 39827.3.3 MySQL的配置修改 39927.4 创建一个本地化页面结构 39927.5 使用gettext()来本地化应用程序 40227.6 小结 40327.7 Q&A 40427.8 实践练习 404问答题 404解答 404思考题 404第28章 使用XML 40528.1 什么是XML 40528.1.1 基本XML文档结构 40528.1.2 何时应该使用XML和PHP 40628.2 使用DOM函数在PHP中访问XML 40728.3 使用SimpleXML函数在PHP中访问XML 40928.4 使用JSON 41128.5 小结 41428.6 Q&A 41428.7 实践练习 414问答题 415解答 415思考题 415第6部分 管理和优化第29章 Apache性能调校和虚拟主机 41829.1 可扩展性问题 41829.1.1 操作系统限制 41829.1.2 和性能相关的Apache设置 42029.2 使用ApacheBench载入测试 42129.3 预先性能调校 42329.3.1 把文件映射到内存 42329.3.2 分布负载 42329.3.3 缓存 42329.3.4 减少数据传输 42329.3.5 网络设置 42429.4 防止滥用 42429.5 实现虚拟主机 42529.5.1 基于IP的虚拟主机 42529.5.2 基于名字的虚拟主机 42629.5.3 大量虚拟主机 42829.6 小结 42829.7 Q&A 42929.8 实践练习 429问答题 430解答 430第30章 建立一个安全的Web服务器 43130.1 安全性的需求 43130.2 SSL协议 43130.2.1 解决保密性需求 43230.2.2 解决完整性的需求 43330.2.3 解决验证的需求 43330.3 获取和安装SSL工具 43530.3.1 OpenSSL 43530.3.2 Apache的mod_ssl模块 43630.4 管理证书 43730.4.1 创建一个密钥对 43730.4.2 创建一个证书签发请求 43830.4.3 创建一个自签发的证书 43930.5 SSL配置 439  启动服务器 44030.6 小结 44030.7 Q&A 44030.8 实践练习 441问答题 441解答 441第31章 优化和调校MySQL 44231.1 构建一个优化的平台 442  使用benchmark()函数 44331.2 MySQL启动选项 444  关键启动参数 44431.3 优化表结构 44531.4 优化你的查询 44531.5 使用FLUSH命令 44631.6 使用SHOW命令 44731.6.1 获取有关数据库和表的信息 44831.6.2 获取表结构信息 44931.6.3 获取系统状态 45131.7 小结 45231.8 Q&A 45231.9 实践练习 452问答题 452解答 453思考题 453第32章 软件升级 45432.1 停留在循环中 454何时升级 45432.2 升级MySQL 45532.3 升级 Apache 456  修改Apache而不需要升级 45632.4 升级PHP 457  使用PECL和PEAR扩展PHP 45732.5 小结 45732.6 实践练习 457问答题 458解答 458思考题 458第33章 使用应用程序框架 45933.1 理解应用程序框架 45933.2 使用MVC模式 46033.3 安装和使用PHP应用程序框架 46133.3.1 Zend Framework 46133.3.2 CakePHP 46233.3.3 CodeIgniter 46233.4 小结 46333.5 实践练习 463问答题 463解答 463思考题 464

编辑推荐

全球销售超百万册的系列图书,连续十余年打造的经典品牌,直观、循序渐进的学习教程、掌握关键知识的最佳起点。每章内容针对初学者精心设计,1小时轻松阅读学习。24小时彻底掌握关键知识。每章案例与练习题助你轻松完成常见任务,通过实践提高应用技能,巩固所学知识。

内容概要

Julie C. Meloni是一位技术顾问Julie自从Web诞生的时候就开始从事基于Web应用的开发。她是多本关于Web编程语言和数据库的图书和文章的作者,包括Sams Teach Yourself Blogging in a Snap一书。她的博客是thickbook.com和nerdtripping.com,后者包含了很多关于旅游的提示和技巧。

媒体关注与评论

通过本书,在很短的时间内,你可以学会如何综合使用PHP、MySQL和Apache这3种最先进的开源Web开发工具,来创建动态的、交互式的Web站点和应用程序。    本书采取一种直接的、按部就班的方式,每一章都是在前一章的基础上进行,使得你能够从头开始学习PHP脚本编程、MySQL数据库以及Apache服务器的基础知识。    不管你是使用Linux、Windows或者Mac OS X,随书光盘都附带了一个完整的启动工具,使你能够安装设置一个可以用于学习、测试和产品开发的环境所需的所有软件。通过本书,你将学习如何:? 安装、配置和设置PHP脚本语言、MySQL数据库系统和Apache Web服务器。? 综合各项技术创建一个动态、支持数据库的Web站点。? 使用PHP和MySQL交互。? 操作表单和文件。? 创建基于Web的讨论论坛和邮件列表。? 为站点添加一个商店和购物车。? 优化MySQL数据库。? 优化Apache服务器性能。? 限制对应用程序的访问。? 设置安全的Web服务器。


 PHP、MySQL和Apache入门经典下载



发布书评

 
 


精彩短评 (总计10条)

  •     挺适合入门的
  •     可以按照书上的步骤快速搭建好环境。优点在于:提供了多平台的搭建方法。学习新技术,第一个难点往往在于搭建环境,这本书很好地考虑到了这点。因此,入门好书。但是程序语言方面不够具体,有提高的空间。
  •     很实用,希望自己能学好
  •     总体还行吧 比较简单 入门级的 实例挺好, 很适合新手。
  •     的确是入门经典,不错
  •     就算是一本入门书籍,最好还是有一定的编程基础才能看懂。书中代码小错误挺多,自己敲一遍能够查出来,不过查错误也是学习过程……学PHP的话这本书只是一块砸门砖,很多不明觉厉的函数都是开着电脑一个一个查过去的,任重而道远啊程序猿们
  •     很好的书,学起来很方便
  •     最喜欢西方思维当中用生活中显而易见的例子解释抽象事物的方式
  •     初学PHP,很白!所以书本应该尽量简单(目前开来这点还行),提供的资料有效这一点太坑人了。书本的P45倒数第一行目前php.ini-recommended已经更名为php.ini-production,为什么你提供的光盘里边的和书本上的版本是不一致的?P46页LoadModule php5_module C:/php/php5apache2_2.dll ,看看你光盘中PHP中有没有这个文件!上网下载了新的PHP,可是按照你说的方式能启动apache吗?再查资料C:/php/php5apache2_2.dll需要用引号包含中才行。刚刚开了几十页,比较令人气愤,太不负责了。唉~~~~~~~~~~
  •     对我这样的初学者来说,还是不错的。顶一下吧
 

农业基础科学,时尚,美术/书法,绘画,软件工程/开发项目管理,研究生/本专科,爱情/情感,动漫学堂PDF下载,。 PDF下载网 

PDF下载网 @ 2024