![]() |
想旅行的小笼包 · excel vba pivot table ...· 1 年前 · |
![]() |
发怒的卤蛋 · c++ - Access tuple ...· 2 年前 · |
![]() |
爱旅游的手套 · python读取和解析含有多个json对象的 ...· 2 年前 · |
####利用Fiddler右侧Composer模拟请求
####跨域问题
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" /></customHeaders>
####常见的403错误
- .Net模式的WebAPI的403错误,是一个典型的Web应用程序问题。
- 现象:IP、端口完全正常,同台服务器部署的其他Web程序能正常访问,本接口在其他服务器上也能正常开放!根据状态码提示:该接口的应用程序本身存在问题。

- 一般经验:.Net的WebAPI接口,是基于.Net的MVC框架,老版本IIS未必支持MVC机制,导致HTTP请求无法成功识别。一般情况将程序进程配置为集成模式即可。也有可能是因为未将.Net Framework4.0注册进IIS导致,通过命令注册即可。
- 具体参考:http://blog.csdn.net/lingxyd_0/article/details/43154867
- Unable To connect the Romote Server(无法连接到远程服务器)
- 问题:Unable To connect the Romote Server(无法连接到远程服务器)
- 分析:这两个问题,仍是接口不能访问导致的。问题表现形式较以往很大不同,是因为访问接口的不是JS代码,而是后台代码。
- 结论:检查配置的接口地址是否正确,或者接口服务器是否开启。
2.7.2 知道何时读完文件:feof()
2.7.3 每次读取一行数据:fgets()、fgetss()和fgetcsv()
2.7.4 读取整个文件:readfile()、fpassthru()和file()
2.7.5 读取一个字符:fgetc()
2.7.6 读取任意长度:fread()
2.8 使用其他有用的文件函数
2.8.1 查看文件是否存在:file_exists()
2.8.2 确定文件大小:filesize()
2.8.3 删除一个文件:unlink()
2.8.4 在文件中定位:rewind()、fseek()和ftell()
2.9 文件锁定
2.10 更好的方式:数据库管理系统
2.10.1 使用普通文件的几个问题
2.10.2 RDBMS是如何解决这些问题的
2.11 进一步学习
2.12 下一章
第3章 使用数组
3.1 什么是数组
3.2 数字索引数组
3.2.1 数字索引数组的初始化
3.2.2 访问数组的内容
3.2.3 使用循环访问数组
3.3 使用不同索引的数组
3.3.1 初始化相关数组
3.3.2 访问数组元素
3.3.3 使用循环语句
3.4 数组操作符
3.5 多维数组
3.6 数组排序
3.6.1 使用sort()函数
3.6.2 使用asort()函数和ksort()函数对相关数组排序
3.6.3 反向排序
3.7 多维数组的排序
3.7.1 用户定义排序
3.7.2 反向用户排序
3.8 对数组进行重新排序
3.8.1 使用shuffle()函数
3.8.2 使用array_reverse()函数
3.9 从文件载入数组
3.10 执行其他的数组操作
3.10.1 在数组中浏览:each()、current()、reset()、end()、next()、pos()和prev()
3.10.2 对数组的每一个元素应用任何函数:array_walk()
3.10.3 统计数组元素个数:count()、sizeof()和array_count_values()
3.10.4 将数组转换成标量变量:extract()
3.11 进一步学习
3.12 下一章
第4章 字符串操作与正则表达式
4.1 创建一个示例应用程序:智能表单邮件
4.2 字符串的格式化
4.2.1 字符串的整理:chop()、ltrim()和trim()
4.2.2 格式化字符串以便显示
4.2.3 格式化字符串以便存储:addslashes()和stripslashes()
4.3 用字符串函数连接和分割字符串
4.3.1 使用函数explode()、implode()和join()
4.3.2 使用strtok()函数
4.3.3 使用substr()函数
4.4 字符串的比较
4.4.1 字符串的排序:strcmp()、strcasecmp()和strnatcmp()
4.4.2 使用strlen()函数测试字符串的长度
4.5 使用字符串函数匹配和替换子字符串
4.5.1 在字符串中查找字符串:strstr()、strchr()、strrchr()和stristr()
4.5.2 查找子字符串的位置:strpos()、strrpos()
4.5.3 替换子字符串:str_replace()、substr_replace()
4.6 正则表达式的介绍
4.6.1 基础知识
4.6.2 字符集和类
4.6.3 重复
4.6.4 子表达式
4.6.5 子表达式计数
4.6.6 定位到字符串的开始或末尾
4.6.7 分支
4.6.8 匹配特殊字符
4.6.9 特殊字符一览
4.6.10 在智能表单中应用
4.7 用正则表达式查找子字符串
4.8 使用正则表达式分割字符串
4.9 比较字符串函数和正则表达式函数
4.10 进一步学习
4.11 下一章
第5章 代码重用与函数编写
5.1 代码重用的好处
5.1.1 成本
5.1.2 可靠性
5.1.3 一致性
5.2 使用require()和include()函数
5.2.1 文件扩展名和require()语句
5.2.2 使用require()制作Web站点的模版
5.2.3 使用auto_prepend_file和auto_append_file
5.3 在PHP中使用函数
5.3.1 调用函数
5.3.2 调用未定义的函数
5.3.3 理解字母大小写和函数名称
5.4 理解为什么要定义自己的函数
5.5 了解基本的函数结构
5.5.1 函数命名
5.6 使用参数
5.7 理解作用域
5.8 参数的引用传递和值传递
5.9 使用Return关键字
5.9.1 从函数返回一个值
5.10 实现递归
5.10.1 名称空间
5.11 进一步学习
5.12 下一章
第6章 面向对象的PHP
6.1 理解面向对象的概念
6.1.1 类和对象
6.1.2 多态性
6.1.3 继承
6.2 在PHP中创建类、属性和操作
6.2.1 类的结构
6.2.2 构造函数
6.2.3 析构函数
6.3 类的实例化
6.4 使用类的属性
6.5 使用private和public关键字控制访问
6.6 类操作的调用
6.7 在PHP中实现继承
6.7.1 通过继承使用private和protected访问修饰符控制可见性
6.7.2 重载
6.7.3 使用final关键字禁止继承和重载
6.7.4 理解多重继承
6.7.5 实现接口
6.8 类的设计
6.9 编写类代码
6.10 理解PHP面向对象新的高级功能
6.10.1 使用Per-Class常量
6.10.2 实现静态方法
6.10.3 检查类的类型和类型提示
6.10.4 克隆对象
6.10.5 使用抽象类
6.10.6 使用__call()重载方法
6.10.7 使用__autoload()方法
6.10.8 实现迭代器和迭代
6.10.9 将类转换成字符串
6.10.10 使用Reflection(反射)API
6.11 下一章
第7章 错误和 异常处理
7.1 异常处理的概念
7.2 Exception类
7.3 用户自定义异常
7.4 Bob的汽车零部件商店应用程序的异常
7.5 异常和PHP的其他错误处理机制
7.6 进一步学习
7.7 下一章
第二篇 使用MySQL
第8章 设计Web数据库
8.1 关系数据库的概念
8.1.1 表格
8.1.2 列
8.1.3 行
8.1.4 值
8.1.5 键
8.1.6 模式
8.1.7 关系
8.2 如何设计Web数据库
8.2.1 考虑要建模的实际对象
8.2.2 避免保存冗余数据
8.2.3 使用原子列值
8.2.4 选择有意义的键
8.2.5 考虑需要询问数据库的问题
8.2.6 避免多个空属性的设计
8.2.7 表格类型的总结
8.3 Web数据库架构
8.4 进一步学习
8.5 下一章
第9章 创建Web数据库
9.1 使用MySQL监视程序
9.2 登录到MySQL
9.3 创建数据库和用户
9.4 设置用户与权限
9.5 MySQL权限系统的介绍
9.5.1 最少权限原则
9.5.2 创建用户:GRANT命令
9.5.3 权限的类型和级别
9.5.4 REVOKE命令
9.5.5 使用GRANT和REVOKE的例子
9.6 创建一个Web用户
9.7 使用正确的数据库
9.8 创建数据库表
9.8.1 理解其他关键字的意思
9.8.2 理解列的类型
9.8.3 用SHOW和DESCRIBE来查看数据库
9.8.4 创建索引
9.9 理解MySQL的标识符
9.10 选择列数据类型
9.10.1 数字类型
9.10.2 日期和时间类型
9.10.3 字符串类型
9.11 进一步学习
9.12 下一章
第10章 使用MySQL数据库
10.1 SQL是什么
10.2 在数据库中插入数据
10.3 从数据库中获取数据
10.3.1 获取满足特定条件的数据
10.3.2 从多个表中获取数据
10.3.3 以特定的顺序获取数据
10.3.4 分组与合计数据
10.3.5 选择要返回的行
10.3.6 使用子查询
10.4 更新数据库记录
10.5 创建后修改表
10.6 删除数据库中的记录
10.7 表的删除
10.8 删除整个数据库
10.9 进一步学习
10.10 下一章
第11章 使用PHP从Web访问MySQL数据库
11.1 Web数据库架构的工作原理
11.2 从Web查询数据库的基本步骤
11.2.1 检查与过滤用户输入数据
11.2.2 建立一个连接
11.2.3 选择使用的数据库
11.2.4 查询数据库
11.2.5 检索查询结果
11.2.6 从数据库断开连接
11.3 将新信息放入数据库
11.4 使用Prepared语句
11.5 使用PHP与数据库交互的其他接口
11.5.1 使用常规的数据库接口:PEAR MDB2
11.6 进一步学习
11.7 下一章
第12章 MySQL高级管理
12.1 深入理解权限系统
12.1.1 user表
12.1.2 db表和host表
12.1.3 tables_priv表,columns_priv表和procs_priv表
12.1.4 访问控制:MySQL如何使用Grant表
12.1.5 更新权限:修改什么时候生效
12.2 提高MySQL数据库的安全性
12.2.1 从操作系统角度来保护MySQL
12.2.2 密码
12.2.3 用户权限
12.2.4 Web问题
12.3 获取更多关于数据库的信息
12.3.1 使用SHOW获取信息
12.3.2 使用DESCRIBE获取关于列的信息
12.3.3 用EXPLAIN理解查询操作的工作过程
12.4 数据库的优化
12.4.1 设计优化
12.4.2 权限
12.4.3 表的优化
12.4.4 使用索引
12.4.5 使用默认值
12.4.6 其他技巧
12.5 备份MySQL数据库
12.6 恢复MySQL数据库
12.7 实现复制
12.7.1 设置主服务器
12.7.2 执行初始的数据传输
12.7.3 设置一个/多个从服务器
12.8 进一步学习
12.9 下一章
第13章 MySQL高级编程
13.1 LOAD DATA INFILE语句
13.2 存储引擎
13.3 事务
13.3.1 理解事务的定义
13.3.2 通过InnoDB使用事务
13.4 外键
13.5 存储过程
13.5.1 基本示例
13.5.2 局部变量
13.5.3 游标和控制结构
13.6 进一步学习
13.7 下一章
第三篇 电子商务与安全性
第14章 运营一个电子商务网站
14.1 我们要实现什么目标
14.2 考虑电子商务网站的类型
14.2.1 使用在线说明书公布信息
14.2.2 接收产品或服务的订单
14.2.3 提供服务和数字产品
14.2.4 为产品或服务增值
14.2.5 减少成本
14.3 理解风险和威胁
14.3.1 网络黑客
14.3.2 不能招揽足够的生意
14.3.3 计算机硬件故障
14.3.4 电力、通信、网络或运输故障
14.3.5 广泛的竞争
14.3.6 软件错误
14.3.7 不断变化的政府政策和税收
14.3.8 系统容量限制
14.4 选择一个策略
14.5 下一章
第15章 电子商务的安全问题
15.1 信息的重要程度
15.2 安全威胁
15.2.1 机密数据的泄露
15.2.2 数据丢失和数据破坏
15.2.3 数据修改
15.2.4 拒绝服务
15.2.5 软件错误
15.2.6 否认
15.3 易用性,性能、成本和安全性
15.4 建立一个安全政策
15.5 身份验证原则
15.6 加密技术基础
15.6.1 私有密钥加密
15.6.2 公有密钥加密
15.6.3 数字签名
15.7 数字证书
15.8 安全的Web服务器
15.9 审计与日志记录
15.10 防火墙
15.11 备份数据
15.11.1 备份常规文件
15.11.2 备份与恢复MySQL数据库
15.12 自然环境安全
15.13 下一章
第16章 Web应用的安全
16.1处理安全性问题的策略
16.1.1 以正确心态为开始
16.1.2 安全性和可用性之间的平衡
16.1.3 安全监视
16.1.4 基本方法
16.2 识别所面临的威胁
16.2.1 访问或修改敏感数据
16.2.2 数据丢失或破坏
16.2.3 拒绝服务
16.2.4 恶意代码注入
16.2.5 服务器被攻破
16.3了解与我们“打交道”的用户
16.3.1 破解人员
16.3.2 受影响机器的未知情用户
16.3.3 对公司不满的员工
16.3.4 硬件被盗
16.3.5 我们自身
16.4 代码的安全性
16.4.1 过滤用户输入
16.4.2 转义输出
16.4.3 代码组织
16.4.4 代码自身的问题
16.4.5 文件系统因素
16.4.6 代码稳定性和缺陷
16.4.7 执行引号和exec
16.5 Web服务器和PHP的安全性
16.5.1 保持软件的更新
16.5.2 查看php.ini文件
16.5.3 Web服务器配置
16.5.4 Web应用的商业主机服务
16.6 数据库服务器的安全性
16.6.1 用户和权限系统
16.6.2发送数据至服务器
16.6.3 连接服务器
16.6.4 运行服务器
16.7 保护网络
16.7.1 安装防火墙
16.7.2使用隔离区域(DMZ)
16.7.3应对DoS和DDoS攻击
16.8 计算机和操作系统的安全性
16.8.1 保持操作系统的更新
16.8.2只运行必须的软件
16.8.3 服务器的物理安全性
16.9 灾难计划
16.10 下一章
第17章 使用PHP和MySQL实现身份验证
17.1 识别访问者
17.2 实现访问控制
17.2.1 保存密码
17.2.2 密码的加密
17.2.3 保护多个网页
17.3 使用基本身份验证
17.4 在PHP中使用基本身份验证
17.5 在Apache的.htaccess文件中使用基本身份验证
17.6 使用mod_auth_mysql身份验证
17.6.1 安装mod_auth_mysql
17.6.2 使用mod_auth_mysql
17.7 创建自定义身份验证
17.8 进一步学习
17.9 下一章
第18章 使用PHP和MySQL实现安全事务
18.1 提供安全的事务处理
18.1.1 用户机器
18.1.2 Internet
18.1.3 我们的系统
18.2 使用加密套接字层(SSL)
18.3 屏蔽用户的输入
18.4 提供安全存储
18.5 存储信用卡号码
18.6 在PHP中使用加密技术
18.6.1 安装GPG
18.6.2 测试GPG
18.7 进一步学习
18.8 下一章
第四篇 PHP的高级技术
第19章 与文件系统和服务器的交互
19.1 文件上载
19.1.1 文件上载的HTML代码
19.1.2 编写处理文件的PHP
19.1.3 避免常见上载问题
19.2 使用目录函数
19.2.1 从目录读取
19.2.2 获得当前目录的信息
19.2.3 创建和删除目录
19.3 与文件系统的交互
19.3.1 获取文件信息
19.3.2 更改文件属性
19.3.3 创建、删除和移动文件
19.4 使用程序执行函数
19.5 与环境变量交互:getenv()和putenv()
19.6 进一步学习
19.7 下一章
第20章 使用网络函数和协议函数
20.1 了解可供使用的协议
20.2 发送和读取电子邮件
20.3 使用其他Web站点的数据
20.4 使用网络查找函数
20.5 备份或镜像一个文件
20.5.1 使用FTP备份或镜像一个文件
20.5.2 上传文件
20.5.3 避免超时
20.5.4 使用其他的FTP函数
20.6 进一步学习
20.7 下一章
第21章 日期和时间的管理
21.1 在PHP中获取日期和时间
21.1.1 使用date()函数
21.1.2 使用UNIX时间戳
21.1.3 使用getdate()函数
21.1.4 使用checkdate()函数检验日期有效性
21.1.5 格式化时间戳
21.2 在PHP日期格式和MySQL日期格式之间进行转换
21.3 在PHP中计算日期
21.4 在MySQL中计算日期
21.5 使用微秒
21.6 使用日历函数
21.7 进一步学习
21.8 下一章
第22章 创建图像
22.1 在PHP中设置图像支持
22.2 理解图像格式
22.2.1 JPEG
22.2.2 PNG
22.2.3 WBMP
22.2.4 GIF
22.3 创建图像
22.3.1 创建一个背景图像
22.3.2 在图像上绘图或打印文本
22.3.3 输出最终图形
22.3.4 清理
22.4 在其他页面中使用自动生成的图像
22.5 使用文本和字体创建图像
22.5.1 创建基本画布
22.5.2 将文本调整到适合按钮
22.5.3 放置文本
22.5.4 将文本写到按钮上
22.5.5 完成
22.6 绘制图像与用图表描绘数据
22.7 使用其他的图像函数
22.8 进一步学习
22.9 下一章
第23章 在PHP中使用会话控制
23.1 什么是会话控制
23.2 理解基本的会话功能
23.2.1 什么是cookie
23.2.2 通过PHP设置cookie
23.2.3 在会话中使用cookie
23.2.4 存储会话 ID
23.3 实现简单的会话
23.3.1 开始一个会话
23.3.2 注册一个会话变量
23.3.3 使用会话变量
23.3.4 注销变量与销毁会话
23.4 创建一个简单的会话例子
23.5 配置会话控制
23.6 通过会话控制实现身份验证
23.7 进一步学习
23.8 下一章
第24章 其他有用的特性
24.1 使用eval()函数对字符串求值
24.2 终止执行:die和exit
24.3 序列化变量和对象
24.4 获取PHP环境信息
24.4.1 找到所加载的PHP扩展部件
24.4.2 识别脚本所有者
24.4.3 确定脚本最近修改时间
24.5 暂时改变运行时环境
24.6 源代码加亮
24.7 在命令行中使用PHP
24.8 下一章
第五篇 创建实用的PHP和MySQL项目
第25章 在大型项目中使用PHP和MySQL
25.1 在Web开发中应用软件工程
25.2 规划和运行Web应用程序项目
25.3 重用代码
25.4 编写可维护代码
25.4.1 编码标准
25.4.2 分解代码
25.4.3 使用标准的目录结构
25.4.4 文档化和共享内部函数
25.5 实现版本控制
25.6 选择一个开发环境
25.7 项目的文档化
25.8 建立原型
25.9 将逻辑和内容分离
25.10 优化代码
25.10.1 使用简单优化
25.10.2 使用Zend产品
25.11 测试
25.12 进一步学习
25.13 下一章
第26章 调试
26.1 编程错误
26.1.1 语法错误
26.1.2 运行时错误
26.1.3 逻辑错误
26.2 使用变量帮助调试
26.3 错误报告级别
26.4 改变错误报告设置
26.5 触发自定义错误
26.6 巧妙地处理错误
26.7 下一章
第27章 建立用户身份验证机制和个性化设置
27.1 解决方案的组成
27.1.1 用户识别和个性化设置
27.1.2 保存书签
27.1.3 推荐书签
27.2 解决方案概述
27.3 实现数据库
27.4 实现基本的网站
27.5 实现用户身份验证
27.5.1 注册
27.5.2 登录
27.5.3 登出
27.5.4 修改密码
27.5.5 重设遗忘的密码
27.6 实现书签的存储和检索
27.6.1 添加书签
27.6.2 显示书签
27.6.3 删除书签
27.7 实现书签推荐
27.8 考虑可能的扩展
27.9 下一章
第28章 创建一个购物车
28.1 解决方案的组成
28.1.1 创建一个在线目录
28.1.2 在用户购买商品的时候记录购买行为
28.1.3 实现一个付款系统
28.1.4 创建一个管理界面
28.2 解决方案概述
28.3 实现数据库
28.4 实现在线目录
28.4.1 列出目录
28.4.2 列出一个目录中的所有图书
28.4.3 显示图书详细信息
28.5 实现购物车
28.5.1 使用show_cart.php脚本
28.5.2 浏览购物车
28.5.3 将物品添加到购物库
28.5.4 保存更新后的购物车
28.5.5 打印标题栏摘要
28.5.6 结账
28.6 实现付款
28.7 实现一个管理界面
28.8 扩展该项目
28.9 使用一个已有系统
28.10 下一章
第29章 创建一个基于Web的电子邮件服务系统
29.1 解决方案的组成
29.1.1 电子邮件协议:POP3和IMAP
29.1.2 PHP对POP3和IMAP的支持
29.2 解决方案概述
29.3 建立数据库
29.4 了解脚本架构
29.5 登录与登出
29.6 建立账户
29.6.1 创建一个新账户
29.6.2 修改已有账户
29.6.3 删除账户
29.7 阅读邮件
29.7.1 选择账户
29.7.2 查看邮箱内容
29.7.3 阅读邮件消息
29.7.4 查看消息标题
29.7.5 删除邮件
29.8 发送邮件
29.8.1 发送一则新消息
29.8.2 回复或转发邮件
29.9 扩展这个项目
29.10 下一章
第30章 创建一个邮件列表管理器
30.1 解决方案的组成
30.1.1 建立列表和订阅者数据库
30.1.2 上载新闻信件
30.1.3 发送带附件的邮件
30.2 解决方案概述
30.3 建立数据库
30.4 定义脚本架构
30.5 实现登录
30.5.1 新账户的创建
30.5.2 登录
30.6 用户函数的实现
30.6.1 查看列表
30.6.2 查看邮件列表信息
30.6.3 查看邮件列表存档
30.6.4 订阅与取消订阅
30.6.5 更改账户设置
30.6.6 更改密码
30.6.7 登出
30.7 管理功能的实现
30.7.1 创建新的邮件列表
30.7.2 上载新的新闻信件
30.7.3 多文件上载的处理
30.7.4 预览新闻信件
30.7.5 发送邮件
30.8 扩展这个项目
30.9 下一章
第31章 创建一个Web论坛
31.1 理解流程
31.2 解决方案的组成
31.3 解决方案概述
31.4 数据库的设计
31.5 查看文章的树型结构
31.5.1 展开和折迭
31.5.2 显示文章
31.5.3 使用treenode类
31.6 查看单个的文章
31.7 添加新文章
31.8 添加扩充
31.9 使用一个已有的系统
31.10 下一章
第32章 生成PDF格式的个性化文档
32.1 项目概述
32.1.1 评估文档格式
32.2 解决方案的组成
32.2.1 问题与回答系统
32.2.2 文档生成软件
32.3 解决方案概述
32.3.1 提问
32.3.2 给答题评分
32.3.3 生成RTF证书
32.3.4 从模板生成PDF证书
32.3.5 使用PDFlib生成PDF文档
32.3.6 使用PDFlib的一个“Hello World”程序
32.3.7 用PDFlib生成证书
32.4 处理标题的问题
32.5 扩展该项目
32.6 下一章
第33章 使用XML和SOAP来连接Web服务
33.1 项目概述:使用XML和Web服务
33.1.1 理解XML
33.1.2 理解Web服务
33.2 解决方案的组成
33.2.1 使用Amazon的Web服务接口
33.2.2 XML的解析:REST响应
33.2.3 在PHP中使用SOAP
33.2.4 缓存
33.3 解决方案概述
33.3.1 核心应用程序
33.3.2 显示特定种类的图书
33.3.3 获得一个AmazonResultSet类
33.3.4 使用REST发送和接收请求
33.3.5 使用SOAP发送和接收请求
33.3.6 缓存请求返回的数据
33.3.7 创建购物车
33.3.8 到Amazon付账
33.4 安装项目代码
33.5 扩展这个项目
33.6 进一步学习
第34 章使用Ajax构建Web 2.0应用
34.1 Ajax 是什么?
34.1.1 HTTP请求和响应
34.1. 2 DHTML和XHTML
34.1.3 级联样式单(CSS)
34.1.4 客户端编程
34.1.5 服务器端编程
34.1.6 XML和XSLT
34.2 Ajax基础
34.2.1 XMLHTTPRequest对象
34.2.2 与服务器通信
34.2.3 处理服务器响应
34.2.4 整合应用
34.3 在以前的项目添加Ajax元素
34.3.1在PHPBookmark应用中添加Ajax元素
34.4 进一步学习
34.4.1 进一步了解文档对象模型(DOM)
34.4.2 Ajax应用可用的JavaScript函数库
34.4.3 Ajax开发人员网站
第六篇 附录
附录A 安装PHP及MySQL
附录B Web资源
第1章 PHP快速入门教程
第2章 数据的存储与检索
第3章 使用数组
第4章 字符串操作与正则表达式
第5章 代码重用与函数编写
第6章 面向对象的PHP
第7章 错误和异常处理
0090 使用Uppercase函数将小写字母转换为大写字母 64
0091 使用Lowercase函数将大写字母转换为小写字母 64
0092 使用Copy函数获取一个字符串的子串 64
0093 使用LeftStr函数从左边取得指定个数的字符串 65
0094 使用RightStr函数从右边取得指定个数的字符串 65
0095 使用Length函数取得一段字符串的长度 65
0096 使用Pos函数返回子字符串第一次出现的索引值 66
0097 使用Quotedstr函数返回字符串的引证串 66
0098 使用Trim函数删除字符串的首尾空格 66
4.2 数学计算函数 67
0099 使用Abs函数返回指定数值的绝对值 67
0100 使用Mod函数计算1~10之间的奇数和 67
0101 使用Div函数做整除操作 68
0102 使用DivMod函数返回两个操作数相除的商和余数 68
0103 使用Power函数返回底数的任何次幂 69
0104 使用Round函数将实数四舍五入为整数 69
0105 使用Sqr函数计算指定数的平方 70
0106 使用Mean函数计算平均数 70
0107 求最大浮点数和最小浮点数 71
4.3 序数函数 72
0108 使用Odd函数改变StringGrid组件的奇偶行颜色 72
0109 使用Pred函数获取顺序类型表达式的前驱 72
0110 使用Succ函数获取顺序类型表达式的后继 73
4.4 进制转换相关函数 73
0111 如何将二进制转换为八进制 73
0112 如何将二进制转换为十进制 75
0113 如何将二进制转换为十六进制 76
0114 如何将十进制转换为二进制 77
0115 如何将十进制转换为十六进制 78
0116 如何将十六进制转换为十进制 79
4.5 类型转换函数 80
0117 使用IntToHex函数将整数转换为十六进制数 80
0118 使用Int函数返回实数的整数部分 80
0119 使用IntToStr函数将整数转换为字符串类型 80
0120 使用StrToInt函数将字符串转换成整数 81
0121 使用StrToBool函数将字符串转换为布尔类型 81
4.6 对话框函数 81
0122 使用InputBox函数显示输入对话框 81
0123 使用MessageDlg函数显示不同风格的对话框 81
0124 使用CreateMessageDialog函数创建消息对话框 82
0125 如何在指定的位置显示信息框 82
0126 使用ShowException函数显示一个异常信息 82
4.7 异常处理函数 83
0127 将错误编号转换为错误信息字符串 83
0128 使用ExceptAddr函数获得异常被抛出的地址 83
0129 格式化异常处理信息 84
4.8 图形图像相关函数 85
0130 将TColor类型的颜色值转换为RGB值 85
0131 使用Bounds函数获得某矩形的TRect 86
0132 从已有的位图上创建位图 86
0133 使用Frame3D过程在画布上创建3D效果 87
4.9 文件操作的相关函数 87
0134 使用CopyFile函数复制文件 87
0135 使用CreateDir函数创建一个目录 88
0136 使用FileCreate函数创建一个图形文件 88
0137 使用GetCurrentDir函数返回当前目录 89
0138 在指定路径中搜索指定的文件 89
0139 使用FileExists函数判断指定文件是否存在 90
0140 使用FileGetAttr函数返回文件的属性 90
0141 使用FileGetDate函数返回文件的修改日期 90
0142 使用FileWrite函数将缓冲区中的内容写入文件 91
4.10 其他函数 91
0143 使用Random函数产生7个随机数 91
0144 使用DiskFree函数返回磁盘驱动器的剩余空间 91
0145 如何使用Printer函数 92
0146 使用SetPriner函数修改打印机信息 93
0147 使用BeginThread函数产生线程 94
0148 使用EndThread过程终止一个线程 95
0149 使用ForegroundTask函数检测线程是否运行 96
第5章 字符与字符串处理技术 99
5.1 ASCII码与编码转换 100
0150 如何获得汉字的区位码 100
0151 通过区位码获取汉字 100
0152 根据ASCII码获得字母 101
0153 获得字母的ASCII码 101
5.2 字符中的转换 101
0154 如何将数字转换成字符串 101
0155 如何将字符串全部大写 102
0156 如何将字符串全部小写 102
0157 如何将字符串中的任意字符转换成大写 103
0158 如何将字符串中的任意字符转换成小写 103
0159 如何将字符串首字母大写 104
5.3 字符串的相关判断 105
0160 判断某一字符是否在字符串中 105
0161 判断字符串是由数字、大写字母或小写字母组成 105
0162 判断字符串中的某一字符是否大写 106
0163 判断字符串中是否有小写字母 107
0164 判断字符串中是否有指定的字符 107
0165 判断字符是否可以转换成整数 108
0166 判断字符中是否有汉字 108
0167 判断字符中是否有双字节 109
0168 判数输入的字符串是否为整数 109
5.4 字符串的个数问题 110
0169 获取文字中英文单词的个数 110
0170 如何统计两个子字符串之间的字符的个数 111
0171 判断字符在字符串中出现的个数 111
0172 在语句中查找汉字的个数 112
0173 如何统计中英文个数 112
5.5 字符串的其他操作 113
0174 返回指定字符串的起始位置 113
0175 获得汉字的拼音简码 113
0176 如何将字符串翻转 114
0177 截取指定位置的字符串 115
0178 清除字符串中指定的字符 115
0179 如何实现文本的加密与解密 116
0180 提取字符串中指定子字符串后的字符串 117
0181 替换指定的字符串 117
0182 在文本中删除指定的汉字或句子 118
0183 指定符号分割字符串 119
0184 如何使用随机密码和字符串 120
第6章 日期和时间 121
0185 获得系统当前时间 122
0186 获得系统当前日期 122
0187 将日期时间格式化为指定格式 122
0188 计算两个日期之间相差的天数 123
0189 根据指定日期返回星期几 123
0190 将日期转换为字符串 124
0191 判断日期是否改变 124
0192 判断字符串是否为日期或时间 125
0193 获得指定月的最后一天 127
0194 在指定的日期上加上3月 127
0195 实现倒计时功能 128
0196 判断指定年份是否为闰年 129
0197 调用系统设置日期对话框 129
0198 将秒数转化成hh:mm:ss格式 129
0199 修改操作系统日期 130
0200 获取全球标准时间 130
第7章 数据处理技术 133
7.1 组件数据处理技术 134
0201 让两个文本框中的内容同时改变 134
0202 格式化DataGrid表格中的数据 134
0203 控制文本框只能录入数字 135
0204 如何在DataGrid中嵌入LookupComboBox 135
0205 在DBGrid中设置不滚动的列 136
0206 如何在DBGrid中实现复制、粘贴功能 137
0207 在DBGrid中将选中的多行删除 137
0208 在DataGrid中如何使标题文字居中 138
0209 如何把ListBox中的内容拖曳到另一个ListBox中 139
0210 把DBGrid中的数据赋给数组 139
0211 如何获取DataGrid单元格中的内容 140
0212 如何锁定文本框中的文本 141
0213 如何设置光标到文本框的末尾 141
0214 如何改变表格列的矩形区域颜色 142
0215 控制在文本框中只能输入两位小数 143
0216 如何把选择的文件图标显示在列表中 143
0217 根据表格中的数据长度自动调整表格宽度 144
7.2 ADO数据处理技术 145
0218 如何把ADO中的数据导入到ListBox中 145
0219 使用SQL语句保存数据 146
0220 使用赋值方式保存数据 147
0221 当ADO循环删除数据时需要注意的问题 147
0222 把Excel中的数据保存到数据库中 147
0223 怎样弹出ConnectionString设置页 148
0224 利用ADO获取DELETE后所影响的记录数 148
7.3 业务实现数据处理技术 149
0225 随机产生中奖号码 149
0226 使用快捷键保存数据 150
0227 密码只允许输入8位或超过8位 150
0228 如何获取汉字拼音简码 151
0229 根据用户输入需求自动调整输入法 152
0230 根据生日自动计算年龄 153
0231 实现找零功能 153
0232 设计带记忆的数据录入窗口 154
0233 在窗体关闭时提示有未保存的数据 155
0234 设置只允许3次密码错误 156
0235 如何读取Word中的文本 156
0236 通过身份证号获取年龄 157
0237 如何实现一个应用程序只能打开一个进程 158
7.4 其他数据处理技术 159
0238 对计算结果四舍五入 159
0239 获取一个字符的ASCII值 159
0240 判断字符串中是否有文字符 160
0241 如何从字符串中提取数字 160
0242 判断内容是否为日期 161
0243 使字符串显示为自定义的格式 161
0244 实现拼音大小写转换 162
0245 怎样实现数据输入为空提示 162
0246 读取Memo1中指定行的文本信息 163
0247 自动调节ComboBox列表宽度 164
0248 如何转换数据库表为CSV文件格式 164
0249 删除文本文件中的多余空格 165
0250 创建和使用资源文件 166
第8章 窗体与界面设计 169
8.1 窗体标题栏控制 170
0251 如何实现标题栏闪烁的窗体 170
0252 如何实现不可移动的窗体 170
0253 如何在不使用标题栏的情况下移动窗体 170
0254 使窗体标题栏文字右对齐 170
0255 在窗体标题栏上添加按钮 171
0256 取消窗体标题栏的关闭按钮 172
0257 如何实现闪动的标题栏文字 172
0258 怎样动态修改窗体图标 172
8.2 窗体的动态显示 173
0259 如何实现QQ窗体 173
0260 实现窗体的淡入淡出 173
0261 实现窗体的幻灯片效果 174
0262 实现窗体的伸展效果 174
0263 实现窗体的下拉效果 175
0264 以放大的圆形显示窗体 175
8.3 MDI窗体 176
0265 在MDI中显示动态窗体 176
0266 在MDI中真正关闭子窗体 176
0267 给MDI主窗体添加背景 176
0268 动态显示像MDI的子窗体 177
0269 打开MDI窗体时其他窗体会显示出来的原因 177
8.4 窗体的大小及位置 178
0270 控制窗体的最大化、最小化 178
0271 无标题栏时改变窗体的大小 178
0272 无标题栏最大化时不覆盖任务栏 178
0273 限制窗体的大小 179
0274 重定义去掉标题栏并最大化窗体 179
0275 使窗体一直居中 179
0276 控制窗体不可移动 180
0277 限制窗体的最大化 180
0278 使窗体自动居中 181
8.5 窗体的特殊形状 181
0279 实现窗体颜色渐变 181
0280 如何使窗体透明 182
0281 制作特殊形状的窗体 182
0282 为窗体增加边框 183
0283 显示圆角窗体 183
0284 制作多边形窗体 184
0285 以文字的形式显示窗体 185
0286 如何实现窗体半透明 185
0287 制作立体窗口阴影效果 186
8.6 工具栏、状态栏及下拉列表 187
0288 制作带历史信息的菜单 187
0289 制作可以拉伸的菜单界面 188
0290 制作类似于XP颜色的下拉页 188
0291 在系统菜单中添加菜单项 189
0292 在状态栏中放置其他组件 189
0293 改变下拉列表的文字颜色 190
8.7 窗体的特殊效果 191
0294 如何动态分割窗体 191
0295 如何将应用程序背景与桌面融合 191
0296 如何在屏幕最前面显示滚动字幕 192
0297 制作磁性窗体 193
0298 制作浮动窗口 194
0299 制作另类提示窗口 195
0300 将窗体放入Panel组件中 196
8.8 窗体的快速操作 197
0301 使窗体始终在最上面 197
0302 显示所有的可视化窗体 197
0303 关闭所有窗体 198
0304 关闭多余的窗体 198
8.9 窗体的调用方法 199
0305 在关闭窗体前显示提示对话框 199
0306 创建一个启动闪现窗口 199
0307 动态创建窗体 200
0308 动态创建窗体和释放窗体 200
0309 在显示主窗体前显示登录窗体 201
8.10 窗体相关操作的其他技巧 202
0310 无窗体的半透明控件 202
0311 修改提示字体及颜色 202
0312 在窗口中显示动态画布 202
0313 如何实现中英文切换 203
0314 在一个子窗体中获得另一个子窗体的组件信息 204
第9章 组件技术 205
9.1 优化组件外观 206
0315 利用TXPManifest组件美化程序界面 206
0316 使用Canvas美化列表项 206
0317 利用Canvas在Chart组件中画一幅图片 207
0318 如何为TListBox添加水平滚动条 207
0319 折行显示按钮标题 208
0320 为组件制作立体效果 208
0321 利用ActiveX控件实现Office助手 209
9.2 菜单、工具栏、状态栏 209
0322 在PopupMenu中动态加入新菜单 209
0323 在状态栏中显示进度条组件 210
0324 为工具栏添加背景图片 210
9.3 文本框及列表框的应用技巧 211
0325 使TEdit组件获取焦点后将文本全部选中 211
0326 使TEdit组件获取焦点时改变文本框颜色 211
0327 查找列表框中的选项 212
0328 在ComboBox组件中显示QQ头像 212
0329 为Edit组件添加列表选择框 213
0330 在ListBox中显示位图 214
0331 获取TMemo中的可见行数 214
0332 如何在Memo组件上实现光标定位 215
0333 控制Memo组件中的滚动条 216
9.4 数据感知控件应用技巧 217
0334 如何在DBGrid中显示不同的记录颜色 217
0335 单击DBGrid标题进行排序 218
0336 使DBGrid支持鼠标滚轮 218
0337 在DBGrid中添加静态字段 218
0338 在DBGrid中实现下拉列表 219
0339 改变DBGrid被选中时的颜色 220
0340 用TDBNavigator组件删除数据显示自定义信息 220
0341 使用Excel组件将数据导出为Excel格式 221
9.5 表格组件使用技巧 222
0342 将StringGrid中指定行的数据添加到Memo中 222
0343 使TStringGrid组件自动移动及增加行 223
0344 单击StringGrid列进行排序 224
9.6 TreeView组件使用技巧 225
0345 如何动态创建TreeView节点 225
0346 如何将TreeView中的节点全部选中 226
0347 将菜单项添加到Tree View中 226
0348 使TreeView组件与数据库关联 227
0349 应用TTreeView组件遍历磁盘目录 228
0350 在TreeView组件中实现拖曳操作 229
9.7 ListView组件使用技巧 229
0351 向TListView组件中添加项目 229
0352 删除ListView中的选项 230
0353 实现ListView滚动 230
0354 将数组中的数值遍历到ListView中 231
0355 ListView组件的高级应用 231
0356 使ListView的不同列显示不同颜色 232
0357 对ListView中的项目进行汇总 233
0358 单击列表标题进行排序 233
9.8 应用组件制作导航 234
0359 用ListView制作导航界面 234
0360 利用Panel组件制作QQ导航栏 235
9.9 其他组件使用技巧 237
0361 动态创建组件 237
0362 创建控件数组 237
0363 用组件来移动窗体 238
0364 实现组件的批量访问 238
0365 使同类组件进行同样的操作 239
0366 使用Ttrackbar组件改变画布颜色值 239
0367 设置TopAxis属性在图表上面显示标签 240
0368 动态向ImageList组件中添加图标 240
0369 设置DateTimePicker组件的外观颜色 241
0370 利用Timer组件显示当前系统时间 241
0371 获取用户在Month Calendar组件中选择的日期 242
0372 在Panel上播放视频文件 242
0373 Win3.1组件的综合应用 242
0374 制作一个信息上传控件 243
0375 使用Gauge组件制作启动程序 245
第10章 鼠标和键盘 247
10.1 鼠标和键盘 248
0376 鼠标和键盘在一定时间没有动作时关闭程序 248
0377 如何锁定鼠标和键盘 248
0378 如何实现键盘鼠标动作记录与回放 249
10.2 鼠标的相关操作 250
0379 将鼠标锁定在指定范围内 250
0380 模拟鼠标操作 251
0381 显示或隐藏鼠标 252
0382 获取鼠标按键状态 252
0383 获取窗口标题 253
0384 单击鼠标左键弹出右键菜单 253
0385 改变当前鼠标的样式 254
0386 模拟键盘的复制与粘贴 255
0387 如何定义自己的鼠标事件 255
0388 利用鼠标绘制矩形焦点 256
0389 将鼠标移动到指定控件 257
0390 ANI动画鼠标的制作 257
0391 自制动画鼠标 258
0392 获取鼠标滑轮的消息 258
0393 制作鼠标跟随 259
0394 利用鼠标滑轮查看组件中的数据 259
10.3 键盘的相关操作 260
0395 按回车键移动焦点 260
0396 如何屏蔽Win键 261
0397 如何控制键盘指示灯 261
0398 如何屏蔽Sleep和Wake Up键 262
0399 设置自己的热键 262
0400 用键盘钩子封锁Win dows热键 263
0401 如何用Esc键退出程序 263
0402 在TDBGrid中用回车键移至下一个字段 264
0403 用Esc键停止循环 264
0404 如何判断左右 Shift 按键 265
0405 替换一个键盘按钮 265
10.4 鼠标的其他应用技巧 266
0406 实现超级链接效果 266
0407 用鼠标隐藏显示窗口(仿QQ) 267
0408 获取鼠标的桌面坐标 267
0409 用鼠标双击TStatusBar时判断是哪一个Panels 268
0410 使Canvas上直线的一个端点跟着鼠标跑 268
第11章 文件与文件管理 271
11.1 文件及文件夹的创建和移动 272
0411 创建并删除文件 272
0412 如何移动文件 272
0413 将文件放入回收站 273
0414 复制文件夹到其他路径中 273
0415 用API函数进行文件的复制 274
0416 用内存块复制文件 275
0417 用文件流对文件进行复制 275
11.2 文件的打开及读取 276
0418 打开指定格式的文件 276
0419 获取文件中指定符号中的字符串 277
0420 如何输出文本内容 277
0421 根据文件名中的部分名称打开该文件 278
0422 怎样合并文件 280
0423 创建和使用资源文件 281
11.3 文件及文件夹的相关属性 281
0424 如何获取文件的访问时间 281
0425 获取文件的剩余空间 282
0426 获取文件修改时间 283
0427 怎样修改文件属性 283
11.4 文件及文件夹的相关目录 285
0428 得到系统当前目录 285
0429 改变当前目录 285
0430 获取System目录 286
0431 获取Windows目录 286
0432 获取临时文件的目录 287
11.5 文件属性的相关判断 287
0433 判断文件是否被使用 287
0434 判断文件是否存在 288
0435 判断文件是否为文本文件 288
0436 判断文件名是否有效 289
11.6 文件及文件夹的遍历 289
0437 如何查询文件 289
0438 提取文件夹中的文件 291
0439 遍历文件夹下的所有文件(包含子文件夹) 291
11.7 INI文件 292
0440 如何读写INI文件 292
0441 利用INI文件查看工作日志 294
0442 用INI文件创建菜单 295
11.8 文件的其他应用技巧 296
0443 调用帮助文件 296
0444 对文件进行比较 296
0445 更改文件名称 297
0446 字符网格和文本间转换 297
第12章 磁盘管理 299
12.1 获取磁盘的相关信息 300
0447 获取磁盘总空间 300
0448 获取光盘的盘符 300
0449 获取系统盘符 301
0450 获得光盘的卷标 301
0451 获取磁盘卷标 302
0452 获取磁盘编号 302
0453 获取磁盘详细信息 303
0454 获取硬盘序列号 303
0455 获取驱动器类型 304
0456 获取驱动器列表 304
0457 获取磁盘的文件系统名称、长度及系统标记 305
0458 获取移动硬盘 305
12.2 磁盘设置与操作 306
0459 将文件存到磁盘中 306
0460 如何实现盘格式化 307
0461 打开磁盘时先弹出文本文件 308
0462 怎样进行磁盘碎片整理 308
12.3 磁盘监控与分析 308
0463 判断光驱中是否有光盘 308
0464 如何打开和关闭光驱 309
0465 判断软驱中是否有软盘 310
0466 判断磁盘是否存在 311
第13章 图形图像技术 313
13.1 基本操作 314
0467 对窗体进行刷新 314
0468 在TImage组件上显示透明文字 314
0469 清空TImage组件中的图片 314
0470 生成两个颜色的中间色 315
0471 改变文字的背景颜色 315
13.2 绘制图形 316
0472 制作空心文字 316
0473 如何实现十字光标定位 316
0474 制作旋转的文字 317
0475 波形图的绘制 318
0476 制作动画背景的窗体 319
0477 如何涂抹窗体 320
0478 如何万花筒 320
13.3 图片格式转换 321
0479 ICO转换成位图(BMP) 321
0480 JPG转换成位图(BMP) 322
0481 WMF转换成位图(BMP) 323
0482 位图(BMP)转换成JPG 323
0483 位图(BMP)转换成WMF 324
0484 批量转换图像 324
13.4 颜色格式的转换 326
0485 将TColor换算成RGB 326
0486 将TColor换算成HTML 326
0487 将HTML换算成TColor 327
0488 将CMYK换算成RGB 327
0489 将RGB换算成CMYK 328
0490 将RGB换算成TColor 329
13.5 图片的滤镜效果 329
0491 将图片以灰度形式显示 329
0492 提高图像的亮度 330
0493 图像浮雕效果 331
0494 图片的反色效果 332
13.6 翻转与缩放 333
0495 如何放大和缩小图像 333
0496 实现图形反转 333
0497 如何旋转图像 334
0498 将图像局部放大 335
13.7 图片的动态效果 336
0499 制作百叶窗效果 336
0500 垂直交错显示图像 337
0501 水平交错显示图像 338
0502 制作积木效果 338
0503 制作推拉效果 340
0504 如何实现雨滴式的效果 340
0505 图片颜色逐渐加深 341
13.8 获取及调整图片的像素 342
0506 如何实现定点取色 342
0507 获取指定点的RGB值 343
0508 制作红绿眼镜三维立体画 343
0509 调整图片的RGB对比度 344
0510 图片的加密与解密 345
13.9 图片的处理技术 346
0511 复制局部图片 346
0512 在图片中加入文字 347
0513 如何实现图片扭曲 348
0514 图片的网格效果 350
13.10 图片的存储 350
0515 将BMP图片重画到窗体上 350
0516 将JPG图片重画到窗体上 351
0517 使位图图片透明 352
0518 对大图片的操作 352
13.11 图片的其他应用技巧 353
0519 怎样浏览大图片 353
0520 获取图像信息 353
0521 在图片上平滑移动文字 354
0522 制作随鼠标拖动的图像 355
0523 在TMainMenu组件上绘制图片 356
第14章 动画与多媒体 357
14.1 动画播放 358
0524 单帧动画播放 358
0525 多帧动画播放 358
0526 模拟石英钟 360
0527 设计字幕程序 361
0528 设计屏幕保护程序 361
14.2 文字效果 363
0529 文字的立体字效果 363
0530 文字滚动效果 364
0531 文字旋转效果 365
0532 制作空心文字 365
14.3 播放媒体文件 366
0533 播放AVI文件 366
0534 播放Flash动画 367
0535 播放WAV文件 368
0536 播放GIF文件 368
14.4 利用API播放媒体 369
0537 与多媒体相关的API函数 369
0538 利用sndPlaySound函数播放音频文件 370
0539 利用mciSendString函数播放AVI 370
14.5 音频及视频 372
0540 使电脑发出声音 372
0541 显示MP3文件的播放时间 372
0542 显示文件的播放进度 373
0543 循环播放媒体文件 374
0544 显示AVI文件的播放帧数 375
0545 指定视频显示窗口 375
0546 全屏播放视频文件 376
0547 设计一个精美的播放器 377
0548 播放背景音乐 380
0549 利用RealPlayer播放器播放音乐 381
14.6 媒体控制 382
0550 如何实现静音与声道控制 382
0551 调用声音控制对话框 383
0552 使播放的Flash随窗口大小改变 383
0553 打开和关闭光驱 383
第15章 API函数 385
15.1 操作系统 386
0554 关闭显示器 386
0555 获取系统启动模式 386
0556 使程序不出现在任务栏上 387
0557 修改系统时间 387
0558 修改系统颜色 388
0559 使用API函数拨号 389
0560 获取内存使用状态的信息 389
0561 清空回收站 390
0562 设置系统日期 390
0563 如何设定屏幕分辨率设定 391
0564 修改系统的刷新率 391
0565 隐藏桌面图标 392
0566 获取Windows主题文件 392
15.2 窗体 393
0567 利用API创建窗体 393
0568 利用API创建画刷 394
0569 利用API绘制弧形 394
0570 利用API控制窗体显示 395
0571 制作闪动标题的窗体 396
0572 拖动无标题栏窗体 396
0573 获取拖动到窗体中的文件路径 396
0574 在窗口的任意地方弹出主菜单项 397
0575 获取工程中的所有窗体名称 398
15.3 其他相关应用技巧 399
0576 锁定计算机 399
0577 启动控制面板 400
0578 如何实现屏幕抓图 401
0579 计算Windows从启动后所运行的总时间率 401
0580 巧用GetSystemMetrics函数 402
0581 显示密码编辑框中的密码 402
0582 添加、删除系统托盘图标 402
0583 如何在系统菜单中添加新项目 403
0584 监测程序多久未被使用 404
第16章 注册表 405
16.1 注册表基本操作 406
0585 创建注册表项 406
0586 删除注册表项 406
0587 向注册表中写入数据 407
0588 读取注册表中的数据 407
0589 列出指定注册表项下全部键值 408
0590 备份与恢复注册表 409
16.2 桌面 410
0591 设置系统墙纸 410
0592 修改桌面“我的电脑”的提示信息 410
0593 如何在桌面的任意位置显示墙纸 411
0594 在任务栏中添加自定义信息 412
16.3 优化系统性能 413
0595 如何实现自动登录 413
0596 如何快速显示窗口 414
0597 优化二级缓存 414
0598 优化系统关机速度 415
0599 禁止用户对虚拟内存的访问 415
16.4 IE浏览器设置 416
0600 设置IE默认首页 416
0601 清空IE网址中的历史记录 416
0602 设计修改IE标题栏和工具栏背景的程序 418
0603 隐藏IE属性中的选项 419
0604 禁止查看网页中的源文件 421
0605 禁止IE播放多媒体文件 421
0606 禁止对IE浏览器设置默认首页 422
16.5 “开始”菜单的相关设置 422
0607 如何在“开始”菜单中隐藏“关机”菜单项 422
0608 如何在“开始”菜单中隐藏“文档”菜单项 423
0609 如何在“开始”菜单中隐藏“运行”菜单项 423
0610 退出系统时清除“文档”中的历史记录 424
0611 禁止文档子菜单记录最近的工作信息 425
16.6 其他设置 426
0612 设计开机欢迎文字 426
0613 防止应用程序窗口失去焦点 426
0614 隐藏“添加/删除Windows组件”按钮 427
0615 隐藏计算机中的盘符 428
0616 禁止使用控制面板 430
0617 禁止使用注册表编辑器 431
0618 通过注册表获取时区信息 431
0619 通过注册表获取系统信息和用户注册信息 432
第17章 Windows相关开发技术 435
17.1 CPU 436
0620 获取CPU频率 436
0621 获取从开机到现在CPU运行的周期数 436
0622 获取CPU名称 437
0623 判断CPU是否支持MMX 438
17.2 系统控制 438
0624 计算机的关闭、重启和注销 438
0625 开关屏幕保护 439
0626 设计更换屏幕保护的程序 440
0627 设计屏幕保护的程序 441
0628 设置屏幕分辨率 442
0629 设置墙纸 443
0630 显示桌面 444
0631 让InputBox也能使用密码掩码 444
0632 控制系统菜单 445
0633 动态改变屏幕的显示模式 446
0634 在桌面上创建指定网址的快捷方式 446
0635 建立批处理文件的快捷方式 447
0636 Windows菜单字体的设置 448
17.3 系统状态栏的相关操作 448
0637 隐藏和显示任务栏 448
0638 隐藏、显示托盘图标 449
0639 隐藏状态栏中的时间 449
0640 如何设置“开始”按钮不可用 450
17.4 获取系统信息 450
0641 查看当前系统版本 450
0642 更改系统日期及时间 451
0643 获取系统字体的列表 452
0644 获取指定盘符中的路径 452
0645 获取系统内存信息 454
0646 如何使用DOS获取计算机的网络信息 454
17.5 获取Windows的相关文件 455
0647 按文件类型获取其图标 455
0648 监控剪贴板的文字内容 456
0649 输出Shell32.dll的图标 457
0650 从剪贴板中读取图片 458
17.6 Windows消息的相关控制 458
0651 程序最小时在任务栏中显示托盘图标 458
0652 动态最小化到状态栏托盘区 459
0653 屏幕取图(包含鼠标) 459
17.7 其他相关技巧 460
0654 如何让电脑发出滴声 460
0655 打开记事本和计算器 461
0656 对汉字输入法进行操作 461
0657 在组件中执行控制面板 462
0658 在Windows界面上不显示程序 464
0659 清空回收站 464
0660 给桌面加上一层阴影 465
第18章 程序应用控制 467
第19章 数据库技术 485
第20章 SQL查询相关技术 523
第21章 打印与报表技术 583
第22章 图表技术 617
第23章 硬件相关技巧 633
第24章 网络开发技术 645
第25章 Web相关技巧 689
第26章 安全技术 707
第27章 程序调试与错误处理 717
第28章 程序打包与安装 727
第29章 第三方控件 737
上述代码通过反射生成与Web API项目相匹配的XML文件名,AppContext.BaseDirectory属性用于构造 XML 文件的路径,关于OpenApiInfo内的配置参数用于文档的一些描述,在此不作过多说明。为解决前后端苦于接口文档与实际不一致、维护和更新文档的耗时费力等问题,swagger应运而生,同时也解决了接口测试问题。这样,我们以三斜杠(///)方式给类方法属性等相关代码添加注释后,刷新Swagger页面,即可看到注释说明。同时,调整项目生成的XML文档文件路径为:…
2.7.2 知道何时读完文件:feof()
2.7.3 每次读取一行数据:fgets()、fgetss()和fgetcsv()
2.7.4 读取整个文件:readfile()、fpassthru()和file()
2.7.5 读取一个字符:fgetc()
2.7.6 读取任意长度:fread()
2.8 使用其他有用的文件函数
2.8.1 查看文件是否存在:file_exists()
2.8.2 确定文件大小:filesize()
2.8.3 删除一个文件:unlink()
2.8.4 在文件中定位:rewind()、fseek()和ftell()
2.9 文件锁定
2.10 更好的方式:数据库管理系统
2.10.1 使用普通文件的几个问题
2.10.2 RDBMS是如何解决这些问题的
2.11 进一步学习
2.12 下一章
第3章 使用数组
3.1 什么是数组
3.2 数字索引数组
3.2.1 数字索引数组的初始化
3.2.2 访问数组的内容
3.2.3 使用循环访问数组
3.3 使用不同索引的数组
3.3.1 初始化相关数组
3.3.2 访问数组元素
3.3.3 使用循环语句
3.4 数组操作符
3.5 多维数组
3.6 数组排序
3.6.1 使用sort()函数
3.6.2 使用asort()函数和ksort()函数对相关数组排序
3.6.3 反向排序
3.7 多维数组的排序
3.7.1 用户定义排序
3.7.2 反向用户排序
3.8 对数组进行重新排序
3.8.1 使用shuffle()函数
3.8.2 使用array_reverse()函数
3.9 从文件载入数组
3.10 执行其他的数组操作
3.10.1 在数组中浏览:each()、current()、reset()、end()、next()、pos()和prev()
3.10.2 对数组的每一个元素应用任何函数:array_walk()
3.10.3 统计数组元素个数:count()、sizeof()和array_count_values()
3.10.4 将数组转换成标量变量:extract()
3.11 进一步学习
3.12 下一章
第4章 字符串操作与正则表达式
4.1 创建一个示例应用程序:智能表单邮件
4.2 字符串的格式化
4.2.1 字符串的整理:chop()、ltrim()和trim()
4.2.2 格式化字符串以便显示
4.2.3 格式化字符串以便存储:addslashes()和stripslashes()
4.3 用字符串函数连接和分割字符串
4.3.1 使用函数explode()、implode()和join()
4.3.2 使用strtok()函数
4.3.3 使用substr()函数
4.4 字符串的比较
4.4.1 字符串的排序:strcmp()、strcasecmp()和strnatcmp()
4.4.2 使用strlen()函数测试字符串的长度
4.5 使用字符串函数匹配和替换子字符串
4.5.1 在字符串中查找字符串:strstr()、strchr()、strrchr()和stristr()
4.5.2 查找子字符串的位置:strpos()、strrpos()
4.5.3 替换子字符串:str_replace()、substr_replace()
4.6 正则表达式的介绍
4.6.1 基础知识
4.6.2 字符集和类
4.6.3 重复
4.6.4 子表达式
4.6.5 子表达式计数
4.6.6 定位到字符串的开始或末尾
4.6.7 分支
4.6.8 匹配特殊字符
4.6.9 特殊字符一览
4.6.10 在智能表单中应用
4.7 用正则表达式查找子字符串
4.8 使用正则表达式分割字符串
4.9 比较字符串函数和正则表达式函数
4.10 进一步学习
4.11 下一章
第5章 代码重用与函数编写
5.1 代码重用的好处
5.1.1 成本
5.1.2 可靠性
5.1.3 一致性
5.2 使用require()和include()函数
5.2.1 文件扩展名和require()语句
5.2.2 使用require()制作Web站点的模版
5.2.3 使用auto_prepend_file和auto_append_file
5.3 在PHP中使用函数
5.3.1 调用函数
5.3.2 调用未定义的函数
5.3.3 理解字母大小写和函数名称
5.4 理解为什么要定义自己的函数
5.5 了解基本的函数结构
5.5.1 函数命名
5.6 使用参数
5.7 理解作用域
5.8 参数的引用传递和值传递
5.9 使用Return关键字
5.9.1 从函数返回一个值
5.10 实现递归
5.10.1 名称空间
5.11 进一步学习
5.12 下一章
第6章 面向对象的PHP
6.1 理解面向对象的概念
6.1.1 类和对象
6.1.2 多态性
6.1.3 继承
6.2 在PHP中创建类、属性和操作
6.2.1 类的结构
6.2.2 构造函数
6.2.3 析构函数
6.3 类的实例化
6.4 使用类的属性
6.5 使用private和public关键字控制访问
6.6 类操作的调用
6.7 在PHP中实现继承
6.7.1 通过继承使用private和protected访问修饰符控制可见性
6.7.2 重载
6.7.3 使用final关键字禁止继承和重载
6.7.4 理解多重继承
6.7.5 实现接口
6.8 类的设计
6.9 编写类代码
6.10 理解PHP面向对象新的高级功能
6.10.1 使用Per-Class常量
6.10.2 实现静态方法
6.10.3 检查类的类型和类型提示
6.10.4 克隆对象
6.10.5 使用抽象类
6.10.6 使用__call()重载方法
6.10.7 使用__autoload()方法
6.10.8 实现迭代器和迭代
6.10.9 将类转换成字符串
6.10.10 使用Reflection(反射)API
6.11 下一章
第7章 错误和 异常处理
7.1 异常处理的概念
7.2 Exception类
7.3 用户自定义异常
7.4 Bob的汽车零部件商店应用程序的异常
7.5 异常和PHP的其他错误处理机制
7.6 进一步学习
7.7 下一章
第二篇 使用MySQL
第8章 设计Web数据库
8.1 关系数据库的概念
8.1.1 表格
8.1.2 列
8.1.3 行
8.1.4 值
8.1.5 键
8.1.6 模式
8.1.7 关系
8.2 如何设计Web数据库
8.2.1 考虑要建模的实际对象
8.2.2 避免保存冗余数据
8.2.3 使用原子列值
8.2.4 选择有意义的键
8.2.5 考虑需要询问数据库的问题
8.2.6 避免多个空属性的设计
8.2.7 表格类型的总结
8.3 Web数据库架构
8.4 进一步学习
8.5 下一章
第9章 创建Web数据库
9.1 使用MySQL监视程序
9.2 登录到MySQL
9.3 创建数据库和用户
9.4 设置用户与权限
9.5 MySQL权限系统的介绍
9.5.1 最少权限原则
9.5.2 创建用户:GRANT命令
9.5.3 权限的类型和级别
9.5.4 REVOKE命令
9.5.5 使用GRANT和REVOKE的例子
9.6 创建一个Web用户
9.7 使用正确的数据库
9.8 创建数据库表
9.8.1 理解其他关键字的意思
9.8.2 理解列的类型
9.8.3 用SHOW和DESCRIBE来查看数据库
9.8.4 创建索引
9.9 理解MySQL的标识符
9.10 选择列数据类型
9.10.1 数字类型
9.10.2 日期和时间类型
9.10.3 字符串类型
9.11 进一步学习
9.12 下一章
第10章 使用MySQL数据库
10.1 SQL是什么
10.2 在数据库中插入数据
10.3 从数据库中获取数据
10.3.1 获取满足特定条件的数据
10.3.2 从多个表中获取数据
10.3.3 以特定的顺序获取数据
10.3.4 分组与合计数据
10.3.5 选择要返回的行
10.3.6 使用子查询
10.4 更新数据库记录
10.5 创建后修改表
10.6 删除数据库中的记录
10.7 表的删除
10.8 删除整个数据库
10.9 进一步学习
10.10 下一章
第11章 使用PHP从Web访问MySQL数据库
11.1 Web数据库架构的工作原理
11.2 从Web查询数据库的基本步骤
11.2.1 检查与过滤用户输入数据
11.2.2 建立一个连接
11.2.3 选择使用的数据库
11.2.4 查询数据库
11.2.5 检索查询结果
11.2.6 从数据库断开连接
11.3 将新信息放入数据库
11.4 使用Prepared语句
11.5 使用PHP与数据库交互的其他接口
11.5.1 使用常规的数据库接口:PEAR MDB2
11.6 进一步学习
11.7 下一章
第12章 MySQL高级管理
12.1 深入理解权限系统
12.1.1 user表
12.1.2 db表和host表
12.1.3 tables_priv表,columns_priv表和procs_priv表
12.1.4 访问控制:MySQL如何使用Grant表
12.1.5 更新权限:修改什么时候生效
12.2 提高MySQL数据库的安全性
12.2.1 从操作系统角度来保护MySQL
12.2.2 密码
12.2.3 用户权限
12.2.4 Web问题
12.3 获取更多关于数据库的信息
12.3.1 使用SHOW获取信息
12.3.2 使用DESCRIBE获取关于列的信息
12.3.3 用EXPLAIN理解查询操作的工作过程
12.4 数据库的优化
12.4.1 设计优化
12.4.2 权限
12.4.3 表的优化
12.4.4 使用索引
12.4.5 使用默认值
12.4.6 其他技巧
12.5 备份MySQL数据库
12.6 恢复MySQL数据库
12.7 实现复制
12.7.1 设置主服务器
12.7.2 执行初始的数据传输
12.7.3 设置一个/多个从服务器
12.8 进一步学习
12.9 下一章
第13章 MySQL高级编程
13.1 LOAD DATA INFILE语句
13.2 存储引擎
13.3 事务
13.3.1 理解事务的定义
13.3.2 通过InnoDB使用事务
13.4 外键
13.5 存储过程
13.5.1 基本示例
13.5.2 局部变量
13.5.3 游标和控制结构
13.6 进一步学习
13.7 下一章
第三篇 电子商务与安全性
第14章 运营一个电子商务网站
14.1 我们要实现什么目标
14.2 考虑电子商务网站的类型
14.2.1 使用在线说明书公布信息
14.2.2 接收产品或服务的订单
14.2.3 提供服务和数字产品
14.2.4 为产品或服务增值
14.2.5 减少成本
14.3 理解风险和威胁
14.3.1 网络黑客
14.3.2 不能招揽足够的生意
14.3.3 计算机硬件故障
14.3.4 电力、通信、网络或运输故障
14.3.5 广泛的竞争
14.3.6 软件错误
14.3.7 不断变化的政府政策和税收
14.3.8 系统容量限制
14.4 选择一个策略
14.5 下一章
第15章 电子商务的安全问题
15.1 信息的重要程度
15.2 安全威胁
15.2.1 机密数据的泄露
15.2.2 数据丢失和数据破坏
15.2.3 数据修改
15.2.4 拒绝服务
15.2.5 软件错误
15.2.6 否认
15.3 易用性,性能、成本和安全性
15.4 建立一个安全政策
15.5 身份验证原则
15.6 加密技术基础
15.6.1 私有密钥加密
15.6.2 公有密钥加密
15.6.3 数字签名
15.7 数字证书
15.8 安全的Web服务器
15.9 审计与日志记录
15.10 防火墙
15.11 备份数据
15.11.1 备份常规文件
15.11.2 备份与恢复MySQL数据库
15.12 自然环境安全
15.13 下一章
第16章 Web应用的安全
16.1处理安全性问题的策略
16.1.1 以正确心态为开始
16.1.2 安全性和可用性之间的平衡
16.1.3 安全监视
16.1.4 基本方法
16.2 识别所面临的威胁
16.2.1 访问或修改敏感数据
16.2.2 数据丢失或破坏
16.2.3 拒绝服务
16.2.4 恶意代码注入
16.2.5 服务器被攻破
16.3了解与我们“打交道”的用户
16.3.1 破解人员
16.3.2 受影响机器的未知情用户
16.3.3 对公司不满的员工
16.3.4 硬件被盗
16.3.5 我们自身
16.4 代码的安全性
16.4.1 过滤用户输入
16.4.2 转义输出
16.4.3 代码组织
16.4.4 代码自身的问题
16.4.5 文件系统因素
16.4.6 代码稳定性和缺陷
16.4.7 执行引号和exec
16.5 Web服务器和PHP的安全性
16.5.1 保持软件的更新
16.5.2 查看php.ini文件
16.5.3 Web服务器配置
16.5.4 Web应用的商业主机服务
16.6 数据库服务器的安全性
16.6.1 用户和权限系统
16.6.2发送数据至服务器
16.6.3 连接服务器
16.6.4 运行服务器
16.7 保护网络
16.7.1 安装防火墙
16.7.2使用隔离区域(DMZ)
16.7.3应对DoS和DDoS攻击
16.8 计算机和操作系统的安全性
16.8.1 保持操作系统的更新
16.8.2只运行必须的软件
16.8.3 服务器的物理安全性
16.9 灾难计划
16.10 下一章
第17章 使用PHP和MySQL实现身份验证
17.1 识别访问者
17.2 实现访问控制
17.2.1 保存密码
17.2.2 密码的加密
17.2.3 保护多个网页
17.3 使用基本身份验证
17.4 在PHP中使用基本身份验证
17.5 在Apache的.htaccess文件中使用基本身份验证
17.6 使用mod_auth_mysql身份验证
17.6.1 安装mod_auth_mysql
17.6.2 使用mod_auth_mysql
17.7 创建自定义身份验证
17.8 进一步学习
17.9 下一章
第18章 使用PHP和MySQL实现安全事务
18.1 提供安全的事务处理
18.1.1 用户机器
18.1.2 Internet
18.1.3 我们的系统
18.2 使用加密套接字层(SSL)
18.3 屏蔽用户的输入
18.4 提供安全存储
18.5 存储信用卡号码
18.6 在PHP中使用加密技术
18.6.1 安装GPG
18.6.2 测试GPG
18.7 进一步学习
18.8 下一章
第四篇 PHP的高级技术
第19章 与文件系统和服务器的交互
19.1 文件上载
19.1.1 文件上载的HTML代码
19.1.2 编写处理文件的PHP
19.1.3 避免常见上载问题
19.2 使用目录函数
19.2.1 从目录读取
19.2.2 获得当前目录的信息
19.2.3 创建和删除目录
19.3 与文件系统的交互
19.3.1 获取文件信息
19.3.2 更改文件属性
19.3.3 创建、删除和移动文件
19.4 使用程序执行函数
19.5 与环境变量交互:getenv()和putenv()
19.6 进一步学习
19.7 下一章
第20章 使用网络函数和协议函数
20.1 了解可供使用的协议
20.2 发送和读取电子邮件
20.3 使用其他Web站点的数据
20.4 使用网络查找函数
20.5 备份或镜像一个文件
20.5.1 使用FTP备份或镜像一个文件
20.5.2 上传文件
20.5.3 避免超时
20.5.4 使用其他的FTP函数
20.6 进一步学习
20.7 下一章
第21章 日期和时间的管理
21.1 在PHP中获取日期和时间
21.1.1 使用date()函数
21.1.2 使用UNIX时间戳
21.1.3 使用getdate()函数
21.1.4 使用checkdate()函数检验日期有效性
21.1.5 格式化时间戳
21.2 在PHP日期格式和MySQL日期格式之间进行转换
21.3 在PHP中计算日期
21.4 在MySQL中计算日期
21.5 使用微秒
21.6 使用日历函数
21.7 进一步学习
21.8 下一章
第22章 创建图像
22.1 在PHP中设置图像支持
22.2 理解图像格式
22.2.1 JPEG
22.2.2 PNG
22.2.3 WBMP
22.2.4 GIF
22.3 创建图像
22.3.1 创建一个背景图像
22.3.2 在图像上绘图或打印文本
22.3.3 输出最终图形
22.3.4 清理
22.4 在其他页面中使用自动生成的图像
22.5 使用文本和字体创建图像
22.5.1 创建基本画布
22.5.2 将文本调整到适合按钮
22.5.3 放置文本
22.5.4 将文本写到按钮上
22.5.5 完成
22.6 绘制图像与用图表描绘数据
22.7 使用其他的图像函数
22.8 进一步学习
22.9 下一章
第23章 在PHP中使用会话控制
23.1 什么是会话控制
23.2 理解基本的会话功能
23.2.1 什么是cookie
23.2.2 通过PHP设置cookie
23.2.3 在会话中使用cookie
23.2.4 存储会话 ID
23.3 实现简单的会话
23.3.1 开始一个会话
23.3.2 注册一个会话变量
23.3.3 使用会话变量
23.3.4 注销变量与销毁会话
23.4 创建一个简单的会话例子
23.5 配置会话控制
23.6 通过会话控制实现身份验证
23.7 进一步学习
23.8 下一章
第24章 其他有用的特性
24.1 使用eval()函数对字符串求值
24.2 终止执行:die和exit
24.3 序列化变量和对象
24.4 获取PHP环境信息
24.4.1 找到所加载的PHP扩展部件
24.4.2 识别脚本所有者
24.4.3 确定脚本最近修改时间
24.5 暂时改变运行时环境
24.6 源代码加亮
24.7 在命令行中使用PHP
24.8 下一章
第五篇 创建实用的PHP和MySQL项目
第25章 在大型项目中使用PHP和MySQL
25.1 在Web开发中应用软件工程
25.2 规划和运行Web应用程序项目
25.3 重用代码
25.4 编写可维护代码
25.4.1 编码标准
25.4.2 分解代码
25.4.3 使用标准的目录结构
25.4.4 文档化和共享内部函数
25.5 实现版本控制
25.6 选择一个开发环境
25.7 项目的文档化
25.8 建立原型
25.9 将逻辑和内容分离
25.10 优化代码
25.10.1 使用简单优化
25.10.2 使用Zend产品
25.11 测试
25.12 进一步学习
25.13 下一章
第26章 调试
26.1 编程错误
26.1.1 语法错误
26.1.2 运行时错误
26.1.3 逻辑错误
26.2 使用变量帮助调试
26.3 错误报告级别
26.4 改变错误报告设置
26.5 触发自定义错误
26.6 巧妙地处理错误
26.7 下一章
第27章 建立用户身份验证机制和个性化设置
27.1 解决方案的组成
27.1.1 用户识别和个性化设置
27.1.2 保存书签
27.1.3 推荐书签
27.2 解决方案概述
27.3 实现数据库
27.4 实现基本的网站
27.5 实现用户身份验证
27.5.1 注册
27.5.2 登录
27.5.3 登出
27.5.4 修改密码
27.5.5 重设遗忘的密码
27.6 实现书签的存储和检索
27.6.1 添加书签
27.6.2 显示书签
27.6.3 删除书签
27.7 实现书签推荐
27.8 考虑可能的扩展
27.9 下一章
第28章 创建一个购物车
28.1 解决方案的组成
28.1.1 创建一个在线目录
28.1.2 在用户购买商品的时候记录购买行为
28.1.3 实现一个付款系统
28.1.4 创建一个管理界面
28.2 解决方案概述
28.3 实现数据库
28.4 实现在线目录
28.4.1 列出目录
28.4.2 列出一个目录中的所有图书
28.4.3 显示图书详细信息
28.5 实现购物车
28.5.1 使用show_cart.php脚本
28.5.2 浏览购物车
28.5.3 将物品添加到购物库
28.5.4 保存更新后的购物车
28.5.5 打印标题栏摘要
28.5.6 结账
28.6 实现付款
28.7 实现一个管理界面
28.8 扩展该项目
28.9 使用一个已有系统
28.10 下一章
第29章 创建一个基于Web的电子邮件服务系统
29.1 解决方案的组成
29.1.1 电子邮件协议:POP3和IMAP
29.1.2 PHP对POP3和IMAP的支持
29.2 解决方案概述
29.3 建立数据库
29.4 了解脚本架构
29.5 登录与登出
29.6 建立账户
29.6.1 创建一个新账户
29.6.2 修改已有账户
29.6.3 删除账户
29.7 阅读邮件
29.7.1 选择账户
29.7.2 查看邮箱内容
29.7.3 阅读邮件消息
29.7.4 查看消息标题
29.7.5 删除邮件
29.8 发送邮件
29.8.1 发送一则新消息
29.8.2 回复或转发邮件
29.9 扩展这个项目
29.10 下一章
第30章 创建一个邮件列表管理器
30.1 解决方案的组成
30.1.1 建立列表和订阅者数据库
30.1.2 上载新闻信件
30.1.3 发送带附件的邮件
30.2 解决方案概述
30.3 建立数据库
30.4 定义脚本架构
30.5 实现登录
30.5.1 新账户的创建
30.5.2 登录
30.6 用户函数的实现
30.6.1 查看列表
30.6.2 查看邮件列表信息
30.6.3 查看邮件列表存档
30.6.4 订阅与取消订阅
30.6.5 更改账户设置
30.6.6 更改密码
30.6.7 登出
30.7 管理功能的实现
30.7.1 创建新的邮件列表
30.7.2 上载新的新闻信件
30.7.3 多文件上载的处理
30.7.4 预览新闻信件
30.7.5 发送邮件
30.8 扩展这个项目
30.9 下一章
第31章 创建一个Web论坛
31.1 理解流程
31.2 解决方案的组成
31.3 解决方案概述
31.4 数据库的设计
31.5 查看文章的树型结构
31.5.1 展开和折迭
31.5.2 显示文章
31.5.3 使用treenode类
31.6 查看单个的文章
31.7 添加新文章
31.8 添加扩充
31.9 使用一个已有的系统
31.10 下一章
第32章 生成PDF格式的个性化文档
32.1 项目概述
32.1.1 评估文档格式
32.2 解决方案的组成
32.2.1 问题与回答系统
32.2.2 文档生成软件
32.3 解决方案概述
32.3.1 提问
32.3.2 给答题评分
32.3.3 生成RTF证书
32.3.4 从模板生成PDF证书
32.3.5 使用PDFlib生成PDF文档
32.3.6 使用PDFlib的一个“Hello World”程序
32.3.7 用PDFlib生成证书
32.4 处理标题的问题
32.5 扩展该项目
32.6 下一章
第33章 使用XML和SOAP来连接Web服务
33.1 项目概述:使用XML和Web服务
33.1.1 理解XML
33.1.2 理解Web服务
33.2 解决方案的组成
33.2.1 使用Amazon的Web服务接口
33.2.2 XML的解析:REST响应
33.2.3 在PHP中使用SOAP
33.2.4 缓存
33.3 解决方案概述
33.3.1 核心应用程序
33.3.2 显示特定种类的图书
33.3.3 获得一个AmazonResultSet类
33.3.4 使用REST发送和接收请求
33.3.5 使用SOAP发送和接收请求
33.3.6 缓存请求返回的数据
33.3.7 创建购物车
33.3.8 到Amazon付账
33.4 安装项目代码
33.5 扩展这个项目
33.6 进一步学习
第34 章使用Ajax构建Web 2.0应用
34.1 Ajax 是什么?
34.1.1 HTTP请求和响应
34.1. 2 DHTML和XHTML
34.1.3 级联样式单(CSS)
34.1.4 客户端编程
34.1.5 服务器端编程
34.1.6 XML和XSLT
34.2 Ajax基础
34.2.1 XMLHTTPRequest对象
34.2.2 与服务器通信
34.2.3 处理服务器响应
34.2.4 整合应用
34.3 在以前的项目添加Ajax元素
34.3.1在PHPBookmark应用中添加Ajax元素
34.4 进一步学习
34.4.1 进一步了解文档对象模型(DOM)
34.4.2 Ajax应用可用的JavaScript函数库
34.4.3 Ajax开发人员网站
第六篇 附录
附录A 安装PHP及MySQL
附录B Web资源
第1章 PHP快速入门教程
第2章 数据的存储与检索
第3章 使用数组
第4章 字符串操作与正则表达式
第5章 代码重用与函数编写
第6章 面向对象的PHP
第7章 错误和异常处理
Delphi是由Inprise公司推出的面向对象的可视化软件开发工具。Delphi 5是Delphi的最新版本。本书共分三部分、16章,主要介绍Delphi 5集成开发环境,对象Pascal语言、组件、通用编程技术、动态链接库、多线程、多媒体编程、数据库编程、网络编程和Windows API编程等。
目 录
第一部分 Delphi编程基础
第1章 Delphi集成开发环境 1
1.1 集成开发环境简介 1
1.2 集成调试器 5
1.3 开发环境的优化 6
1.3.1 自定义工具栏 6
1.3.2 编程环境设置 7
1.3.3 编辑环境设置 8
1.3.4 工程设置 8
1.4 方法与技巧 9
1.4.1 使用代码浏览器 9
1.4.2 使用代码编辑器 9
1.4.3 使用帮助系统 10
1.4.4 设置IDE桌面 11
第2章 对象Pascal语言 12
2.1 学习对象Pascal语言的一个通用
例程 12
2.2 对象Pascal语言基础 14
2.2.1 标识符 14
2.2.2 保留字和指令字 14
2.2.3 注释 15
2.2.4 数据类型 16
2.2.5 运算符 21
2.2.6 语句 24
2.2.7 过程与函数 27
2.3 对象Pascal语言的关键技术 30
2.3.1 对象和类 31
2.3.2 类的封装与继承 31
2.3.3 构造函数和析构函数 32
2.3.4 多态性 35
2.3.5 抽象类 38
2.3.6 运行时类型信息 39
2.3.7 类方法 41
2.3.8 类引用 42
2.3.9 单元文件与工程文件 43
2.4 异常处理 45
2.4.1 raise语句 45
2.4.2 try...except语句 45
2.4.3 try...finally语句 47
2.5 方法与技巧 48
2.5.1 命名规则 48
2.5.2 在编译时自由设置是否获得提示
信息 48
2.5.3 使用代码模板 49
2.5.4 使用动态多维数组 49
2.5.5 定义两个相互包含的类 50
2.5.6 获取和使用命令行参数 51
2.5.7 引用参数传递 51
第二部分 Delphi编程的核心技能
第3章 窗体和组件 53
3.1 窗体和组件 53
3.1.1 窗体 54
3.1.2 组件 56
3.1.3 在窗体中使用组件 57
3.2 文本组件 60
3.3 特殊输入组件 61
3.4 按钮及其分类组件 63
3.5 列表组件 64
3.6 分组组件 67
3.7 信息反馈组件 69
3.8 表格显示组件 70
3.9 图形显示组件 71
3.10 开发MDI应用程序 73
3.11 常用组件的用法 74
3.12 方法与技巧 84
3.12.1 窗体、组件的使用原则 84
3.12.2 使用信息对话框 85
3.12.3 使用组件的Hint属性 88
3.12.4 使用Edit组件的IME属性 89
3.12.5 将系统字体添加到ComboBox
组件中 89
3.12.6 在RichEdit组件中存取文件 90
3.12.7 设置模态对话框的返回值 90
3.12.8 使用事件处理过程中的Sender
参数 91
3.12.9 为控件生成多行提示信息 91
3.12.10 生成非矩形窗口 92
3.12.11 移动无标题栏窗口 94
3.12.12 制作动态字幕 95
3.12.13 在窗体上动态地设置背景
画面 96
3.12.14 Owner和Parent的区别 97
第4章 菜单、工具栏和状态栏 98
4.1 菜单 98
4.1.1 主菜单 99
4.1.2 鼠标右键弹出式菜单 99
4.1.3 使用菜单模板 99
4.2 工具栏 100
4.2.1 ToolBar 100
4.2.2 CoolBar 100
4.2.3 ControlBar 101
4.3 状态栏 101
4.4 方法与技巧 106
4.4.1 动态创建菜单 106
4.4.2 为菜单动态定义快捷键 108
4.4.3 动态改变菜单 108
4.4.4 定制系统菜单 109
4.4.5 制作图形菜单项 110
4.4.6 在状态栏中添加进度条等其他
组件 111
4.4.7 MDI应用程序中的菜单融合 113
4.4.8 制作可随处拖放的工具栏 116
4.4.9 将菜单项移到菜单栏的最右边 117
4.4.10 运行时控件的移动 117
第5章 键盘和鼠标 119
5.1 键盘事件 119
5.2 鼠标事件 120
5.2.1 常用鼠标事件 120
5.2.2 拖曳事件 120
5.3 方法与技巧 122
5.3.1 检测Shift、Alt和Ctrl键是否
按下 122
5.3.2 屏蔽系统功能键 123
5.3.3 模拟按下键盘上的某个键 124
5.3.4 限制鼠标移动的范围 124
5.3.5 自定义鼠标 125
5.3.6 设置光标闪烁的速度 126
5.3.7 不同程序间的拖曳操作 127
第6章 文件、目录和驱动器 129
6.1 文件 129
6.2 文件对话框组件 129
6.3 Win3.1相关组件 131
6.4 常用函数 131
6.4.1 文件操作常用函数 131
6.4.2 目录操作常用函数 136
6.4.3 驱动器操作常用函数 138
6.4.4 文件名操作常用函数 139
6.5 方法与技巧 145
6.5.1 获取驱动器类型信息 145
6.5.2 操作INI文件 146
6.5.3 从文件中读取超过255个字符
的行 148
6.5.4 获取文件的日期信息 149
6.5.5 检测软盘或光盘是否有变化 150
6.5.6 检测驱动器容量 151
6.5.7 拷贝整个目录 152
6.5.8 将文件删除到回收站中 153
6.5.9 检测驱动器是否就绪 153
6.5.10 获取应用程序的文件名 154
6.5.11 操作临时文件 154
第7章 打印 156
7.1 一些简单的打印输出 156
7.2 TPrinter对象和TScreen对象 156
7.3 打印操作常用函数 157
7.4 方法与技巧 164
7.4.1 获取默认打印机的信息 164
7.4.2 获取打印机队列的状态信息 165
7.4.3 打印窗体 166
第8章 多线程应用程序 167
8.1 进程与线程 167
8.2 TThread类 167
8.3 线程的同步 169
8.4 线程的优先级 170
第9章 动态链接库 176
9.1 概述 176
9.2 创建动态链接库 177
9.3 使用动态链接库 179
9.4 方法与技巧 180
9.4.1 如何调试动态链接库 180
9.4.2 在DLL中使用MessageBox代替ShowMessage 181
9.4.3 如何动态地装入DLL 181
9.4.4 如何定制不同语言版本的应用
程序 183
第三部分 Delphi高级编程技术
第10章 多媒体技术 185
10.1 多媒体 185
10.1.1 概述 185
10.1.2 多媒体应用领域 186
10.1.3 多媒体软件开发工具 187
10.2 图像格式的处理 188
10.2.1 位图 189
10.2.2 JPEG文件 191
10.3 特殊显示效果 193
10.3.1 画布 193
10.3.2 调用CopyRect 193
10.3.3 调用BitBlt 194
10.4 动画 199
10.4.1 文字动画 199
10.4.2 图像动画 200
10.5 音频、视频 206
10.6 方法与技巧 209
10.6.1 使用MessageBeep与Beep 209
10.6.2 使用PlaySound 210
10.6.3 使用mciSendString 211
第11章 关系数据库 215
11.1 关系数据库 215
11.1.1 关键字 215
11.1.2 表之间的约束 215
11.1.3 结构化查询语言(SQL) 216
11.2 Delphi提供的数据库辅助工具 218
11.2.1 使用SQL Explorer 218
11.2.2 使用Database Desktop 218
11.2.3 使用BDE Administrator 220
11.3 数据库组件 221
11.3.1 TTable 221
11.3.2 TQuery 225
11.3.3 表的连接 227
11.3.4 计算字段 229
11.3.5 查找字段 230
11.3.6 网格 231
11.4 查询记录 232
11.4.1 GotoKey 232
11.4.2 FindKey 233
11.4.3 模糊查询 233
11.4.4 Locate 234
11.5 修改记录 234
11.6 插入和删除记录 235
11.7 数据模块 237
11.8 数据字典查看器 238
11.9 事务 240
11.10 处理数据库异常 244
第12章 InterBase服务器 248
12.1 客户/服务器的概念 248
12.1.1 客户 248
12.1.2 InterBase 客户例程库 248
12.1.3 InterBase服务器 248
12.1.4 Borland数据库引擎 248
12.2 数据库的管理和维护 249
12.2.1 创建数据库 249
12.2.2 创建表 250
12.2.3 数据库安全 250
12.2.4 备份与恢复 251
12.3 服务器端程序 252
12.3.1 存储过程 252
12.3.2 触发器 252
12.4 本地缓存 253
第13章 Web与数据库 260
13.1 CGI的工作原理 260
13.2 Delphi对CGI的支持 260
13.3 创建Web应用程序 261
13.4 表单 262
13.5 把信息保存到数据库 264
13.6 查找记录 266
第14章 COM 270
14.1 在DLL中实现对象 270
14.2 接口 274
14.2.1 对象的生存期 277
14.2.2 IUnknown 279
14.2.3 全局唯一标志符(GUID) 281
14.2.4 注册表 281
14.2.5 多个接口问题 281
14.2.6 Variant类型 284
14.2.7 TComObject 289
14.2.8 TTypedComObject 295
14.3 OLE自动化 307
14.3.1 创建OLE自动化服务器 307
14.3.2 建立OLE客户程序 314
14.3.3 访问自动化服务器的方法 316
14.3.4 使用Word 316
14.4 复合文档 319
第15章 分布式程序设计 329
15.1 CORBA结构 329
15.1.1 CORBA在数据库的应用 335
15.1.2 远程访问 341
15.1.3 OSFind 341
15.2 远程数据集 342
15.2.1 基础 342
15.2.2 扩展服务器 346
15.2.3 参数传递 353
15.2.4 主从约束 355
15.2.5 离线处理 358
15.2.6 ActiveForm 361
15.3 插口Socket 362
15.3.1 插口的使用 362
15.3.2 使用插口的一个例子 363
15.3.3 TNMUDP组件 369
第16章 其他编程技术 374
16.1 使用剪贴板 374
16.1.1 组件对剪贴板操作的支持 374
16.1.2 使用剪贴板类 375
16.1.3 操作图形 378
16.1.4 操作组件 379
16.1.5 操作定制格式的数据 379
16.2 动态数据交换(DDE) 381
16.3 操作注册表 385
16.3.1 TRegistry类 387
16.3.2 与注册表相关的API函数 390
16.4 帮助系统的制作 395
16.4.1 RTF文件 395
16.4.2 HPJ文件与HLP文件 398
16.4.3 启动帮助 402
16.5 安装与卸载 403
16.6 方法与技巧 404
16.6.1 获取Windows版本信息 404
16.6.2 获取系统的度量信息和相关
配置信息 405
16.6.3 获取CPU信息 407
16.6.4 获取内存信息 408
16.6.5 存取系统的颜色信息 409
16.6.6 获取Windows及系统路径 409
16.6.7 存取计算机名称 410
16.6.8 获取用户注册信息 411
16.6.9 关闭Windows 411
16.6.10 启动控制面板 412
16.6.11 启动屏幕保护 415
16.6.12 使窗体标题栏闪烁 415
16.6.13 使窗口背景颜色渐变 416
16.6.14 隐藏/显示桌面上的图标 416
16.6.15 获取窗口标题栏中的文字 417
16.6.16 制作软件封面 418
16.6.17 隐藏/显示Windows任务栏 420
16.6.18 使应用程序不出现在Windows
的任务栏上 420
16.6.19 状态栏编程 421
16.6.20 存取系统参数信息 426
16.6.21 Windows启动时运行程序 427
16.6.22 为程序在启动菜单中创建
快捷方式 428
16.6.23 在程序中运行其他程序 429
16.6.24 同时只运行程序的一个实例 429
16.6.25 关闭运行的其他应用程序 431
16.6.26 显示旋转字体 432
上一篇博客介绍了以WCF的方式,在后端程序部署WEB接口,本篇介绍以WebApi的方式以后端程序为宿主部署WEB接口,依旧以本人实际开发的项目进行说明,直接进入正题。
材料:VS2015,框架:.NET FrameWork 4.5.2,接口调试工具:PostMan,数据传输格式:Json。
本人的项目程序是Windows服务程序,各位自测的时候可以新建一个控制台程序,是一样的哈。
下图为本人的项目文件类库:(供参考)
下图为项目需要使用的引用文件,除了Lx.CSharp.Common(这个是个人
1.使用.net Framework 4.5实现的webApi接口。
2. http get 请求,json格式返回 。
3.请求格式为:http://192.168.10.100/ParkApi/Index
4.返回格式为:{"code":1,"msg":"success"}
上一篇文章我们了解了WebAPI的搭建以及方法的调用传参,本篇文章主要教大家如何进行接口调试。1.首先下载postman安装包,下载地址:(在我的资源里 暂时没有审核通过 通过了改链接 要是一直不通过你们就到官网去下一个吧~)2.安装完成以后的界面是这个样子的:3.根据上一篇文章中的两个测试方法,我们在这里输入url以及参数,首先是Get请求的:4.点击send,我们看到请求成功并得出结果:5.接...
安装成功,就看到就看看自己引用中是否存在Newtonsoft.Json,没有就手动添加到引用中吧。优先封装HttpClient.cs,用于发送http请求,类似于axios,ajax等等。自己创建一个HttpClient.cs,将以下代码拷贝进去即可,无需依赖。将一个json的字符串数据发送到接口中,发送post请求。这里依赖于Newtonsoft.Json,需要去安装。,你可以根据自己的需求的不同进行封装。右键项目-》管理NuGet程序包。这里需要先定义一个数据模型。注意,这里的请求类型为。