《企业微信公众平台开发实战-再小的个体也有自己的品牌.html.pdf》由会员分享,可在线阅读,更多相关《企业微信公众平台开发实战-再小的个体也有自己的品牌.html.pdf(166页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、前言 截至2014年7月底,微信用户数已近8亿,月活跃用户接近4亿,微信公众账号达580万个,已聚集10万开发者,并有6.7万个移动应用接入微信。 如此庞大的微信用户数量是商家的乐土,也是技术开发人员的天堂,很多有实力的微信第三方开发者利用自己的技术和对行业的理解,帮助更多小商户、小企业加入微信,并在微信平台和微信一起快 速成长。我们于2003年10月出版了微信公众平台开发入门教程之后,就收到一名学生的回复,他告诉我们自己通过学习这本教程已帮助别人开发微信应用赚到了2000元,而如今,这个系列教程已经帮 助了超过500000人迈向微信开发的大门。 读者对象 根据不同的群体特点,本书的读者对象如
2、下: 想了解移动互联网及微信公众平台发展的行业从业人员。 想学习微信公众平台开发的学生及技术人员。 想使用微信公众平台开发、创业等渴望更成功的人。 对移动互联网及微信公众平台发展感兴趣的各种研究者和实践者。 阅读指南 本书分为7章。 第1章介绍了微信及其三大平台,重点介绍了微信公众平台的注册及各种功能的使用。 第2章介绍了如何在本地搭建开发环境以及微信公众平台开发的编程基础知识。 第3章介绍了如何申请新浪云应用作为微信程序运行环境,并分析了微信公众平台自动回复的原理。读者需要理解开发模式的原理,这是进行后续开发的基础,最后介绍了微信开发调试器的使用方法。 第4章介绍了微信公众平台开发最常用的接
3、口,包括接收用户发送的4种消息,以3种方式向用户回复消息,接收关注事件推送消息,自定义菜单,网页授权获取用户信息,模板消息。这些接口覆盖了微 信开发过程中80%以上的使用场景。 第5章介绍了微网站的开发,包括首页、栏目页及内容页的设计与实现等。 第6章详细介绍了微信大转盘营销系统的实现原理,并且对数据库设计、防作弊机制、抽奖算法等实现原理进行了深入剖析。 第7章介绍了微信小店的搭建及二次开发,包括微信支付开发配置,微信小店的完整搭建方法,以及二次开发中的付款交易通知、订单查询及快递查询的开发实现。 源码及勘误说明 本书的源代码可以从华章图书官网本书相关的网页下载,网址为: 勘误说明及源码更新可
4、以从方倍工作室的微信公众账号(账号:PondBayStudio)下载,欢迎关注并索取更新。我们也会经常发布微信最新动态及技术信息。 由于作者水平及能力有限,加之时间仓促,书中难免出现错误和不妥之处,恳请读者批评指正! 致谢 首先感谢“微信之父”张小龙先生及微信团队,是他们创造了微信这一经典传世之作。 感谢机械工业出版社王彬编辑的支持,促成了这本书的出版。 感谢我最亲爱的家人在背后的默默支持与付出。 本书成书过程中也得到了诸多同行的支持与鼓励,在此一并致谢。 谨以此书献给所有热爱移动互联网和微信及微信公众平台的人们。 方倍 2015年1月于深圳 第1章 微信公众平台介绍 自从腾讯公司推出微信以后
5、,微信便如星火燎原之势发展,截至2014年7月,微信用户数已近8亿,月活跃用户接近4亿,微信公众账号达580万个,每日新增数为1.5万,是亚洲地区用户群体最大的移 动端即时通信软件,同时也被公认为目前唯一拿到移动互联网门票的应用。 本章主要介绍微信公众平台的注册及使用。 1.1 微信及其三大平台 微信(英文名:WeChat)是腾讯公司于2011年年初推出的一款可以发送文字、表情、图片、语音、视频、位置、链接,并支持语音实时对讲的手机聊天软件。用户可以通过“添加QQ好友”、“添 加手机联系人”、“摇一摇”、“附近的人”、“一起按”、“搜号码”、“查找公众号”、“扫描二维码”等多种方式添加好友或关
6、注微信公众账号,也可以将内容发送给好友或分享到朋友圈。同时微 信还提供“微信支付”、“理财通”、“微信红包”、“嘀嘀打车”、“表情”、“游戏”等贴近生活的功能。 微信由腾讯广州研发中心产品团队开发,该团队经理张小龙被称为“微信之父”,公司总裁马化腾确定该产品的名称为“微信”。 微信的官方网站是: 图1-1 微信图标 2012年8月23日,腾讯公司推出微信公众平台,其宣传口号是“再小的个体,也有自己的品牌”。微信公众平台是微信公众账号所有者(政府、媒体、企业、组织或个人等)进行品牌推广、减少运营 成本、提高影响力、与用户进行互动交流及提供服务的平台,公众账号通过消息、事件、菜单等交互方式为用户提
7、供服务。例如:公众账号“招商银行信用卡中心”为持卡人提供信用卡绑定、查询信用卡 账单、额度及积分;快速还款、申请账单分期;微信转接人工服务;信用卡消费,微信免费笔笔提醒等功能,同时还为非持卡人提供微信办卡功能。微信公众平台的官方网址 是 除了微信公众平台以外,还有微信开放平台及微信智能开放平台。 微信开放平台是为移动应用开发者提供的内容分享接口,开发者可以在iOS、Android以及WP8平台上使用开放平台的SDK来开发分享功能,使用户可以在App上分享内容给微信好友或分享到微信朋友 圈。微信开放平台的官方网址是。 微信智能开放平台目前包括语音开放平台和图像开放平台。语音开放平台目前已开放的有
8、通用语音识别、词表识别、语法识别、语音合成等语音技术。微信图像开放平台致力于为第三方应用提供免费 的图像识别技术和服务。智能开放平台的地址为 1.2 微信公众平台的注册 要使用微信公众平台,需要先注册一个微信公众平台账号。 在浏览器中输入微信公众平台的官方网站,网站地址为 图1-2 微信公众平台首页 可以看到右上角有“第一次使用公众平台?立即注册”字样,点击“立即注册”链接,进入注册页面,如图1-3所示。 图1-3 基本信息界面 在基本信息界面中填写邮箱、密码、验证码,并勾选同意并遵守相关协议,然后点击“注册”按钮。将进入邮箱激活界面,如图1-4所示。 图1-4 邮箱激活界面 同时注册用的邮箱
9、中将收到激活微信公众平台账号的确认邮件,如图1-5所示。 图1-5 激活邮件 点击邮箱中的链接成功激活账号之后,注册页面自动跳转到信息登记界面。在界面中要求选择相应的运营主体是组织还是个人,其中组织类型又细分为政府、媒体、企业、其他组织等。根据运营主体 的不同,要求提供不同的资质材料及证明,如图1-6所示。 图1-6 信息登记界面 填写完登记信息后,进入选择类型界面。公众账号类型可以选择订阅号和服务号,如图1-7所示。 图1-7 选择类型界面 企业和组织一般选择服务号。媒体及个人一般选择订阅号。 服务号的特征是:通过微信认证后每月可群发四条信息给粉丝;群发的消息将显示在聊天列表;下发消息即时通
10、知粉丝;默认可以自动获得自定义菜单资格;可以申请微信认证获得高级接口权限。服 务号旨在为用户提供服务。订阅号的特征是:每天可以群发一条消息给粉丝;群发的消息被折叠至订阅号文件夹中;群发的消息不会在用户界面中看到提示;通过微信认证后才可申请自定义菜单。订阅号 主要用于提供信息和资讯。如果是企业、组织等类型,推荐选择服务号。如果是媒体等类型,建议选择订阅号。 选择好类型后,点击“继续”按钮,弹出公众号信息界面,如图1-8所示。 图1-8 公众号信息界面 填写好信息之后,点击“完成”按钮,将提示成功创建公众账号,如图1-9所示。 图1-9 注册成功界面 点击“前往微信公众平台”按钮将进入账号信息界面
11、。在“设置”-“公众号设置”中可以查看账号的基本信息,如图1-10所示。 图1-10 公众号设置界面 1.3 微信公众平台的使用 登录微信公众平台后台以后,可以看到导航菜单、公众账号类型及名称等基本信息,如图1-11所示。 图1-11 微信公众平台后台 下面以微信公众账号“方倍工作室”为主要例子,介绍微信公众平台的各项菜单及使用。 1.3.1 功能 1.群发功能 群发功能是微信公众平台最常用、最重要的功能之一。 根据需要,运营人员填写文字(或图片/语音/视频/图文等,需要先上传素材)内容后,选择群发对象、性别、群发地区后即可发送。获得微信支付权限的公众账号还能群发商品信息。 群发功能界面如图1
12、-12所示。 图1-12 新建群发消息 在“已发送”页面中,可以看到已经群发的消息,如图1-13所示。 图1-13 已发送的群发消息 2.自动回复 在自动回复下,可以设置三种类型的自动回复。 被添加自动回复:当微信用户关注你的微信公众账号时自动推送的一条消息,支持文字、图片、语音、视频等类型。 消息自动回复:当微信用户发送消息给公众账号时,若未设置关键字自动回复或匹配不到相关的关键字,系统会自动推送该消息给粉丝。该类型信息1个小时内回复12条。 关键字自动回复:如果用户发送的消息内有已设置的关键字即可把设置在此规则名中回复的内容自动发送给用户。图1-14展示了关键字自动回复的设置方法。 图1-
13、14 关键字自动回复 通过设置上面三种类型的自动回复,可以完成一个全面的微信公众账号的内容回复。图1-15依次展示了三种自动回复的内容。 图1-15 三种自动回复消息展示 3.自定义菜单 拥有自定义菜单权限的账号也可以创建自定义菜单。最多可以创建3个一级菜单,每个一级菜单下最多可创建5个二级菜单。每个菜单创建后需要为其设置响应动作。响应动作包括发送信息或跳转到网 页。其中信息包括文字/图片/语音/视频/图文信息。图1-16展示了自定义菜单设置及其中一个子菜单回复图文消息的设置。 图1-16 自定义菜单设置 自定义菜单发布后,效果如图1-17所示。 图1-17 自定义菜单效果 4.其他功能 其他
14、功能还有微信小店、多客服、模板消息、卡券功能、门店管理、设备功能等。运营者可以通过添加功能插件将其加入功能列表中,而微信官方也在不断推出新的功能插件供公众账号使用。图1-18 是微信小店的图示。 图1-18 微信小店 1.3.2 微信支付 微信支付(商户功能)是微信公众平台向有出售物品需求的公众账号提供推广销售、支付收款、经营分析的整套解决方案。商户通过自定义菜单、关键字回复等方式向订阅用户推送商品消息,用户可 在微信公众账号中完成选购与支付的流程。商户也可以把商品网页生成二维码,张贴在线下的场景,如车站和广告海报。用户扫描后可打开商品详情,在微信中直接购买。微信支付的后台界面如图1-19所
15、示。 图1-19 微信支付的后台 1.3.3 管理 1.消息管理 在消息管理中,可以查看全部消息(最近5天的消息),也可以查看今天、昨天、前天、更早以及星标的消息内容,另外还可以对消息内容进行搜索。将鼠标光标移动到某条消息上,可以对其进行快捷 回复,还可以点击星标收藏该消息,收藏后的消息在后台永久保存,如图1-20所示。 图1-20 消息管理 2.用户管理 在用户管理中,可以实现新建用户分组、移动用户至指定分组以及修改用户备注等操作,如图1-21所示。将鼠标光标移至用户头像上可以查看用户性别、地区、签名等信息。另外,被移至黑名单的用 户将不能获得任何回复。 图1-21 用户管理 3.素材管理
16、在素材管理中保存了用户新建的图文消息、图片、语音及视频信息。这些信息可以用于自动回复,也能用于群发功能,如图1-22所示。 图1-22 素材管理 图文消息包括单图文消息以及多图文消息。图文消息包括以下几个部分:标题、封面图片、作者(选填)、摘要(仅单图文消息)、正文、原文链接(选填),如图1-23所示。其中多图文消息最多包 含8条图文消息。而在开发模式下,多图文消息最多可以包含10条图文消息。 图1-23 图文消息 1.3.4 推广 微信公众平台推广功能是微信公众平台官方唯一的广告系统,公众账号运营者通过广告主功能可向不同性别、年龄、地区的微信用户精准推广自己的服务,获得潜在用户,也可通过流量
17、主功能自愿将 公众账号内指定位置分享给广告主作广告展示,按月获得收入。广告主功能如图1-24所示。 图1-24 广告主 1.3.5 统计 1.用户分析 用户分析主要分为用户增长和用户属性两大模块。用户增长模块按日、周、月显示新关注人数、取消关注人数、净增关注人数、累积关注人数等几项指标,如图1-25所示。用户属性模块中,可以根据 性别、省份、城市、语言查看分布情况。 图1-25 用户分析 2.图文分析 图文分析主要分为图文群发和图文统计两大模块。图文群发模块可以查看每篇图文消息的送达人数、图文页阅读人数/次数/图文转化率、原文页阅读人数/次数/原文转化率、分享转发人数/次数,如图 1-26所示
18、。而图文统计模块中,可以根据周期(日或小时)查看图文页阅读、原文页阅读、分享转发等指标情况。 图1-26 图文分析 3.消息分析 在消息分析中,可以根据周期(日或小时)查看消息发送人数、消息发送次数、人均发送次数等指标的情况,如图1-27所示。 图1-27 消息分析 4.接口分析 使用开发模式的公众账号,可以根据周期(日或小时)查看调用次数、失败率、平均耗时、最大耗时等指标的情况,如图1-28所示。 图1-28 接口分析 1.3.6 设置 1.账号信息 账号信息页面显示了公众账号的头像、名称、登录邮箱、原始ID、微信号、隐私设置、类型、认证情况、地区、功能介绍、腾讯微博、二维码、图片水印等信息
19、。图1-29显示了账号的部分信息。 图1-29 账号信息 二维码是用户关注公众账号的一个重要入口。也是企业在微信公众平台上对外进行传播推广时的一张重要名片。微信公众平台提供5种不同尺寸的二维码供运营者下载。方倍工作室的二维码图片如图1- 30所示。读者可以使用微信的“扫一扫”功能,扫描二维码关注我们。 图1-30 二维码 2.微信认证 通过微信认证的账号,可以看到微信认证的日期及已获得的权限列表,如图1-31所示。 图1-31 微信认证 3.公众号助手 公众号助手可以用来代替公众平台群发信息,并可随时查看消息群发状态。运营者可以填写个人微信号来绑定,绑定后个人微信号将自动关注公众号助手。以后向
20、公众号助手发送的内容,系统将自动 群发给所有关注公众账号的用户。公众号助手绑定界面如图1-32所示。 图1-32 公众号助手 4.安全中心 在安全中心中可以开启手机保护功能,开通手机保护后,登录时需要输入手机验证码进行验证后才可正常登录。启用手机保护设置如图1-33所示。 图1-33 手机保护设置 1.3.7 开发者中心 开发者中心提供了开发者ID,其中包括AppID(应用ID)和AppSecret(应用密钥),这些账号用于高级接口及微信支付的开发。同时也可以配置服务器的URL(服务器地址)、Token(令牌)、 EncodingAESKey(消息加解密密钥)及消息加解密方式,如图1-34所示
21、。 图1-34 开发者中心 第2章 开发环境搭建及程序开发基础 在进行微信公众平台接口程序开发之前,首先要做的就是搭建开发环境,学习开发并测试自己编写的程序能否正常运行。对初学者来说,如果之前没有开发基础,还需要学习一门程序语言及数据库的 操作等知识。 本章以PHP和MySQL为主要讲解对象,介绍Windows下开发环境的搭建及PHP开发和MySQL的基础知识。 2.1 本地开发环境搭建 在Windows平台上一般使用WAMP来搭建开发环境,WAMP是Windows+Apache+MySQL+PHP的首字母缩写。Apache、PHP、MySQL本身都是各自独立的程序,但因为常被放在一起使用,由
22、此 组成了一个强大的Web应用程序平台,经常用来搭建服务器。常用的WAMP类软件有WampServer及XAMPP等,本章以WampServer为例。 安装WampServer WampServer是由法国人开发的Apache Web服务器、PHP解释器以及MySQL数据库的一个整合软件包。官方网站是 他网站搜索后进行下载。 下载到本地后,运行安装程序,欢迎界面如图2-1所示。 图2-1 WampServer欢迎界面 上述界面同时显示了该套件中包含的Apache、MySQL、PHP的版本信息。现在很多主流程序要求PHP的版本在5.3及以上,MySQL的版本在5.0及以上,该程序中PHP的版本为
23、5.3.13,MySQL的版本 为5.5.24。 点击“Next”按钮,进入许可协议界面,如图2-2所示。 图2-2 许可协议 点击“I accept the agreement”,然后点击“Next”按钮,进入安装目录选择界面,如图2-3所示。 图2-3 安装目录选择 程序指定了默认的安装路径“c:wamp”,如果不满意,也可以自己指定路径,然后点击“Next”按钮,进入选择附加任务界面,如图2-4所示。 图2-4 选择附加任务 附加任务主要包括是否创建桌面图标(Create a Desktop icon)和创建快速启动栏图标(Create a Quick Launch icon),可以勾选
24、这两个图标,然后点击“Next”按钮,进入“准备安装”界面, 如图2-5所示。 图2-5 准备安装 点击“Install”按钮,进入安装进度界面,如图2-6所示。 图2-6 安装进度 安装过程中,会弹出选择默认浏览器窗口,如图2-7所示。 图2-7 选择默认浏览器 选择自己要使用的浏览器,然后点击“Open”按钮。安装程序弹出PHP邮箱参数配置界面,如图2-8所示。 图2-8 PHP邮箱参数配置 可以不填写参数,直接使用默认值。点击“Next”按钮,程序安装完成,如图2-9所示。 图2-9 完成安装 如果安装过程中勾选了创建桌面图标,安装完成后,可以在桌面上找到WampServer的快捷方式,
25、如图2-10所示。 图2-10 WampServer图标 双击快捷方式,运行WampServer,WampServer将会在桌面下的右下角图标中显示,并且颜色从红色变到黄色再变到绿色,当变成绿色时,表示WampServer启动成功,如图2-11所示。 图2-11 WampServer任务栏图标 WampServer启动成功后,在浏览器中输入http:/localhost/,可以看到WampServer的首页,它显示了关于服务器环境的一些信息,如图2-12所示。 图2-12 WampServer启动后的首页 在浏览器中输入http:/localhost/phpMyAdmin/,可以进入phpMy
26、Admin页面。phpMyAdmin是一个用PHP编写的软件工具,可以通过Web方式控制和操作MySQL数据库。通过phpMyAdmin可 以完全对数据库进行操作,例如建立、复制和删除数据等。图2-13是登录phpMyAdmin后的界面。 图2-13 phpMyAdmin界面 2.2 选择开发工具 毋庸置疑,开发人员需要一个功能强大的IDE(Integrated Development Environment,集成开发环境)。目前有很多编辑器可以供PHP开发使用,它们各有优势,开发人员可以根据自己的需求及 使用习惯来选择。 Notepad+是一套非常有特色的自由软件的纯文字编辑器,有完整的中文
27、化接口及支持多国语言编写的功能(UTF8技术)。它的功能比Windows中的Notepad(记事本)强大,除了可以用来制作 一般的纯文字说明文件,也十分适合当作编写计算机程序的编辑器。Notepad+不仅有语法高亮度显示,也有语法折叠功能,并且支持宏以及扩充基本功能的外挂模组。Notepad+内置支持多达27种语 法高亮度显示(包括各种常见的源代码、脚本,能够很好地支持查看.nfo文件),还支持自定义语言。本书使用的编辑器就是Notepad+。它的安装程序可以从官方网站http:/www.notepad-plus- plus.org/下载得到。图2-14是Notepad+的编辑界面。 图2-1
28、4 Notepad+ 除了Notepad+之外,还有UltraEdit、Zend Stdio等常用的PHP代码编辑器。 2.3 程序开发基础 PHP(Hypertext Preprocessor,超文本预处理器)于1994年由Rasmus Lerdorf创建,他也被称为“PHP之父”。PHP是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习, 使用广泛,主要适用于Web开发领域。PHP语言是最受欢迎的Web开发语言之一,也是微信公众平台开发使用最广泛的语言。 SQL是结构化查询语言(Structured Query Language)的简称,结构化查询语言是一种数据库
29、查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件 的扩展名。MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。MySQL被广泛地应用于互联网上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开 放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择将MySQL作为网站数据库。 PHP+MySQL是目前最为成熟、稳定、安全的企业级Web开发技术,广泛应用于各大型站点。其成熟的架构、稳定的性能、嵌入式开发方式、简洁的语法,使得能迅速开发系统。百度网站前端使用的 就是PHP,你可以在浏览器中输入 除了PH
30、P和MySQL之外,HTML、CSS样式表和脚本语言JavaScript也是Web开发的基础,一般使用HTML来设计Web页面结构,使用样式表来控制Web页面的显示效果,使用脚本语言来控制浏览器 的特效及表单数据的验证,掌握这些有助于开发者开发实现更丰富和更强大的功能。 2.3.1 PHP语法及使用 PHP的语法和C、C+等语言的语法很相似,有C语言基础的读者,可以非常轻松地掌握PHP的基本语法。由于PHP的语法比较简单,如果没有任何语言基础,也可以快速地熟悉。 1.第一个程序 打开Notepad+编辑器,编写如下代码。 将上述内容保存为hello.php,并且存放在wamp的web根目录c:
31、wampwww下,然后在浏览器中输入http:/localhost/hello.php,将可以看到浏览器显示出“你好,微信!”,如图2-15所示。 图2-15 第一个程序 所有PHP的代码都是以“”结尾,PHP的默认文件扩展名是“.php”。“/”表示该行是注释,它的作用是供代码开发者阅读,它不会被程序执行,代码中的“作者:方 倍”没有在浏览器中显示出来。echo是PHP的一个语句,它的作用是将一串字符显示出来,所以在浏览器中我们看到了“你好,微信!”这段内容。 2.变量及类型 变量是指程序中可以改变的数据量,变量需有一个名字,用来代表变量和存放变量的值。PHP中使用美元符号“$”后面跟变量名
32、来表示一个变量,例如“$result”。PHP的变量主要有以下类型:整 型、浮点型、字符串类型、布尔类型、数组类型和对象。下面是整型、浮点型、字符串类型的示例代码。 上述代码在浏览器中的运行效果如图2-16所示。 图2-16 变量 3.常量 在PHP中通过define()函数定义一个常量。合法的常量名只能以字母和下划线开始,后面可以跟着任意字母、数字或下划线。常量一旦定义就不能再修改或者取消定义。定义常量的示例代码如下所 示: 上述代码定义名为TOKEN的常量,它的值为weixin,在浏览器中的运行效果如图2-17所示。 图2-17 常量 4.运算符 运算符是指通过一个或多个表达式来产生另外一
33、个值的某些符号,如“+”、“%”、“.”等都是运算符。 在PHP中,使用符号“=”表示赋值。它的含义是将一个值指定给一个变量,如“$a=5”表示将5赋给变量$a。 PHP的算术运算符有加(+)、减()、乘(*)、除(/)和取模(%)、取反(-,即取负值)。例如“$x+$y”表示将变量$x和变量$y的值相加。 PHP有递增/递减运算符。递增是指对当前表达式的值增加1,递减正相反,对表达式的值减1。例如“+$x”表示$x加1递增,然后返回$x;“$x-”表示先返回$x,然后$x减1递减。 PHP的字符串运算符只有一个,即字符串的连接运算符“.”。例如“$x=Hello;$x.=weixin!;”表
34、示变量$x的末尾再加上字符串“weixin”。这时$x的值为“Hello weixin”。 PHP的逻辑运算符有与(and)、或(or)、异或(xor)、与( $y=6; echo ($x + $y); / 输出 16 echo ; echo ($x - $y); / 输出 4 echo ; echo ($x * $y); / 输出 60 echo ; echo ($x / $y); / 输出 1.6666666666667 echo ; echo ($x % $y); / 输出 4 echo ; $z=5; $z *= 6; echo $z; / 输出 30 echo ; $x=Hello;
35、 $x .= weixin!; echo $x; / 输出 Hello weixin! echo ; $i=5; echo $i-; / 输出 5 echo ; $a=50; $b=90; var_dump($a $b); $max = ($a=$b) ? $a : $b; echo $max; / 输出 90 ? 在浏览器中的运行效果如图2-18所示。 图2-18 运算符 5.流程控制 PHP程序由语句构成,通常情况下,程序是从第一条语句开始执行,按顺序执行到最后一句。但有时因为某种情况,需要改变程序的执行顺序,这就需要对程序的流程进行控制。 程序的执行方式有3种:顺序执行、选择执行、循环执
36、行,通过使用这3种控制结构,可以改变程序的执行顺序,以满足解决问题的需求。顺序结构使程序从第一条语句开始,按顺序执行到最后一句。 在选择结构中,程序可以根据某个条件是否成立,选择执行不同的语句。在循环结构中,可以根据某种条件和指定的次数,多次执行某些语句。 (1)if语句/if 句/if path=/openresources/teach_ebook/uncompressed/15146/OEBPS/Text/. path=/openresources/teach_ebook/uncompressed/15146/OEBPS/Text/.else语句 在PHP中,我们可以使用以下条件语句: i
37、f语句:如果条件为真,则执行代码。 if if path=/openresources/teach_ebook/uncompressed/15146/OEBPS/Text/. 干段代码块之一。 下述代码是if语句系列的使用方法。 ?php $t=date(H); if ($t18) echo 白天!; if ($t18) echo 白天!; else echo 晚上!; if ($t12) echo 上午!; elseif ($t 上述代码的含义解读如下: 在if语句中,如果当前时间(HOUR)小于18,则输出“白天!”。 在if 天!”,否则输出“晚上!” 在if path=/openres
38、ources/teach_ebook/uncompressed/15146/OEBPS/Text/. path=/openresources/teach_ebook/uncompressed/15146/OEBPS/Text/.else语句中,如果当前时间(HOUR)小于12,则输出“上午!”;如果小于18,则输出“下午!”;否则输出“晚上!”。 (2)switch语句 switch语句首先计算表达式expr的值,如果expr的值与某个case的值匹配,则从case后面的语句开始执行,直到遇到break语句或整个switch语句结束。 switch语句的使用示例如下。 在上述代码中,判断变量$
39、x的值,将它和case的值进行比较,如果存在匹配,则执行和case关联的代码,如果没有case为真,则执行default中的代码。 (3)for循环 for循环执行代码块指定的次数。下面的例子显示了从0到3的数字: ?php for ($x=0; $x 它运行效果如图2-19所示。 图2-19 for循环 (4)while循环 while循环在指定条件为true时执行代码块。 下面的例子首先把变量$x设置为1($x=1)。然后执行while循环,只要$x小于或等于5。循环每运行一次,$x将递增1: ?php $x=1; while($x 它运行效果如图2-20所示。 图2-20 while循环
40、 6.数组 数组能够在一个变量名中存储许多值,并且能够通过引用下标来访问某个值。 在PHP中,创建数组使用array()函数。常用的数组类型有索引数组和关联数组。 索引数组的索引是自动分配的(索引从0开始)。以下代码创建了一个关联数组。 $office = array(word, excel, outlook, access); 数组的名称叫office,第一个元素的值是word,第二个元素为excel,第三个元素是outlook,第四个元素是access。 关联数组的创建方式为 array(key =value, )/key可以是integer或者string;value可以是任何值 以下代
41、码创建了一个关联数组。 $age=array(张三=25,李四=27,王五=33); 它定义了3个元素,以“张三”、“李四”、“王五”为键名,他们的年龄为各自的值。 实际上,索引数组是一种特殊的关联数组。 以下代码演示了数组的创建及遍历数组的方法。 ?php $office = array(word, excel, outlook, access); $arrlength=count($office); for($x=0;$x25,李四=27,王五=33); foreach($age as $key=$value) echo Key= . $key . , Value= . $value; e
42、cho ; ? 程序执行的效果如图2-21所示。 图2-21 数组 7.函数 在程序设计中,经常将一些常用的功能模块编写成函数,供程序或其他文件使用。函数就像一些小程序,用它们可以组成更大的程序。用户定义的函数声明以“function”开头。 这里创建了名称为“familyName()”的函数。打开的花括号“”表示函数代码的开始,而关闭的花括号“”表示函数的结束。 下例中的函数有两个参数$name和$year。当调用familyName()函数时,我们同时要传递一个名字(例如“三”)和出生年(如1980),这样会输出姓相同,但名不同的姓名,以及出生年。 详细代码如下所示。 上述程序执行的效果如
43、图2-22所示。 图2-22 函数 2.3.2 MySQL的使用 本节演示如何通过SQL语句及PHP程序创建和使用一个简单的数据库表。 下面是一个名为“wx_user”的表(见表2-1)。 表2-1 wx_user表 表中含有四个列(id、openid、username以及mobile)和两个记录(每个记录对应一个人)。 1.创建数据库表 下面是建立一个数据库表“wx_user”的SQL脚本。 CREATE TABLE IF NOT EXISTS wx_user ( id int(7) NOT NULL AUTO_INCREMENT, openid varchar(30) NOT NULL,
44、username varchar(20) NOT NULL, telephone varchar(16) NOT NULL, PRIMARY KEY (id), UNIQUE KEY openid (openid) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; 使用CREATE TABLE命令创建数据表。命令中间内容部分是创建条件,分别包括列名、列的数据类型及长度、是否允许为空、是否有自增属性、是否是唯一Key、是否为主键等。 在phpMyAdmin中的SQL运行框中,运行上述代码后,将创建一个“wx_user”的表。如图2-2
45、3所示。 图2-23 wx_user表 2.插入数据 向数据库表插入数据使用INSERT INTO语句。其语法为: INSERT INTO table_name VALUES (value1, value2, 在本例中,插入语句可以这样写: INSERT INTO wx_user (id, openid, username, telephone) VALUES (NULL, o7Lp5t6n59DeX3U0C7Kric9qEx-Q, 方倍, 15987654321); 下面是使用PHP程序来进行提交的代码。 在上述代码中,PHP首先创建到数据库的连接,这是通过mysql_connect()函数
46、完成的,连接的主机为“localhost”,端口为“3306”,账号和密码都为“root”。然后通过“SET NAMESUTF8”命令设置字符集为UTF8,这样就能正常显示中文。之后通过mysql_select_db()函数设置要连接的数据库“book”。最后再使用mysql_query()函数向“wx_user”表中插入两条记 录。执行完成后,最终使用mysql_close()函数关闭MySQL连接。 3.查询数据 从数据库中查询数据使用SELECT语句。其语法为: SELECT column_name(s) FROM table_name 在本例中,查询语句可以这样写: SELECT * FROM wx_user WHERE openid = o7Lp5t6n59DeX3U0C7Kric9qEx-Q; 下面是使用PHP程序来进行查询的代码。 上述代码查询“openid”为“o7Lp5t6n59DeX3U0C7Kr