手机版

使用PHP开发微信公众平台示例

时间:2021-09-08 来源:互联网 编辑:宝哥软件园 浏览:

1.连接SAE数据库。

主机名和端口是必需的,以后将使用相同的名称和端口。

@ $ db=new MySQL(SAE _ MySQL _ host _ m . ' : '。SAE _ MySQL _ port,SAE _ MySQL _ user,SAE _ MySQL _ pass,‘你的应用名称’);2.XML处理。

微信发送的消息都是XML格式,你返回的消息也必须是XML格式。从XML中提取数据并使用SimpleXML功能强大且易于使用。用XML消息包装?将邮件模板保存为字符串,然后使用sprintf作为打印格式。

解析微信服务器POST的数据:

///-接收数据-/$ post str=$ globals[' http _ raw _ post _ data '];//获取POST数据//用SimpleXML $ POST obj=simpleXMl _ load _ string($ POST str,' simpleXMl元素',libxml _ nocata)从POST解析XML数据;$ from username=$ PostObj-from username;//获取发件人帐户(OpenID)$ touser name=$ post obj-touser name;//获取接收方账号$ MSgtype=$ PostObj-MSgtype;//消息内容返回文本消息:

函数sendtext ($ to,$ from,$ content,$ time){//返回消息模板$textTpl='xml ToUserName![CData[% s]]/从用户名使用用户名![CData[% s]]/from username create time % s/create time MsgType![CDATA[%s]]/MsgType内容![CData[% s]]/Content FuncFlag 0/FuncFlag/XML ';//格式化消息模板$ msgType=' text$ time=time();$resultStr=sprintf($textTpl,$to,$from,$time,$msgType,$ content);echo $ resultStr} 3.API接口的调用。

网上有很多API接口,比如百度翻译、有道翻译、天气预报等。接口可以通过file_get_contents直接调用,也可以通过curl调用,然后根据返回的数据格式对数据进行分析,通常是xml格式或者json格式。处理时使用SimpleXML和json_decode非常方便。要获取应用编程接口内容,请使用重新打包的函数:

function my _ get _ file _ contents($ URL){ if(function _ exists(' file _ get _ contents ')){ $ file _ contents=file _ get _ contents($ URL);} else {//初始化一个CUlR对象$ ch=CUlR _ init();$ time out=5;//设置要抓取的URL curl _ setopt ($ ch,curl opt _ URL,$ URL);//设置cURL参数,询问结果是保存为字符串还是输出到屏幕。curl _ setopt ($ ch,curl opt _ return transfer,1);//启动连接前等待的时间。如果设置为0,它将无限期等待curl _ setopt ($ ch,curl opt _ connecttimeout,$ time out);//运行cURL并请求网页$ file _ contents=cURL _ exec($ ch);//关闭URL请求curl _ close($ ch);}返回$ file _ contents}百度翻译API调用如下:函数百度DIC ($ word,$ from=' auto ',$ to=' auto '){//首先对待翻译文本进行urlencode处理$ word _ code=URL encode($ word);//注册的API密钥$ appid=' yourAPIkey//生成翻译API的URL获取地址$ Baidu _ URL=' http://open API . Baidu.com/public/2.0/BMT/translate?client_id='。$appid。q='。$word_code。from='。$from。to='。$ to$ text=JSON _ decode(my _ get _ file _ contents($ Baidu _ URL));$ text=$ text-trans _ result;返回$ text[0]-dst;} 4.计算“附近”的经纬度。

使用以下模型计算正方形的纬度和经度。采用哈弗辛公式。

//$ EARTH _ RADIUS=6371;//地球半径,平均半径6371km /** *计算某经纬度周围有一定距离的正方形的四个点* *@param lng float经度*@param lat float纬度*@param distance float该点所在圆的半径,与正方形内接。默认值为*@return数组Square *的四个点的0.5km * @经纬度坐标/函数Return SquarePoint ($ LNG,$ LAT,$ distance=0.5){ $ Earth _ RADIUS=6371;$ dlng=2 * asin(sin($ distance/(2 * $ EARTH _ RADIUS))/cos(deg 2 rad($ lat));$ dlng=rad 2 deg($ dlng);$ dlat=$ distance/$ EARTH _ RADIUS;$ dlat=rad 2 deg($ dlat);返回数组('左上方'=数组(' lat'=$lat $dlat,' lng'=$lng-$dlng),'右上方'=数组(' lat'=$lat $dlat,' lng'=$lng $dlng),'左下方'=数组(' lat'=$lat - $dlat,' lng'=$lng - $dlng),'右下方'=数组(' lat'=$lat - $dlat,' LNG '=$ LNG $ dlng));}按时间降序对查询结果进行排序。message是数据库中的一个表,location_X是一个维度,location_Y是一个经度://使用此函数计算结果并将其带入sql查询。$ squares=returnsquare point($ LNG,$ lat);$ query=' select * from message where _ X!=0和location _ X’。$squares['右下']['lat']。和位置_ X’。$squares['left-top']['lat']。和位置_ Y’。$squares['左上方']['lng']。和位置_ Y’。$squares['右下']['lng']。“按时间排序,desc”;5.检查绳子。

限于6-20个字母,如果匹配则返回true否则,返回false,并采用正则表达式进行匹配:

函数inputcheck($ word){ if(preg_match('/^[0-9a-za-z]{6,20}$/',$word)){ return true;}返回false} 6.当子串是包含中文的字符串时,用mb_substr截取http://www.php.net/manual/zh/function.mb-substr.php

7.检测中英文混合字符串的长度

?Php $str=' sanzhi sunchis开发网络';echo strlen($str)。br ';//结果:22 echo MB _ strlen ($ str,' utf8 ')。br ';//结果:12 $ strlen=(strlen($ str)MB _ strlen($ str,' utf8 ')/2;echo $ strlen//结果:17?8.检查是否包含中文

?$str=“测试中文”;echo $ strecho ' hr//if (preg _ match ('/[')。chr (0xa1)。'-'.chr (0xff)。] $/',$ str)){//只能在GB2312中使用。//if (preg _ match ('/[\) Utf-8 //判断字符串是否全是中文if (preg _ match ('/[\ x7f-\ xff]/',$ str)){//判断字符串中是否有中文回声;} else {echo“错误输入”;} ?双字节字符的编码范围是1。gbk(GB 2312/GB 18030)\ x00-\ xff gbk双字节编码范围\x20-\x7f ASCII\xa1-\xff中文gb2312\x80-\xff中文gbk

2.UTF-8(Unicode)\ u4e 00-\ u9 F5中文\x3130-\x318F韩文\xAC00-\xD7A3韩文\u0800-\u4e00日文

9.jQuery Mobile官网的使用:http://blog.jquerymobile.com/以前自己写手机网页,真的很痛苦。CSS调试比较麻烦,跨平台非常不好。后来他发现了这个库,简单多了,界面看起来漂亮多了。但是,它也引入了一些新的问题,比如在页面中加载CSS和Javascript。因为Jquery Mobile默认使用Ajax加载页面,所以不刷新整个html,只请求一个页面,所以有多个页面的页面不会被完全加载。head中的CSS和Javascript不会被加载,所以一种方法是在link属性中设置ajax=false,表示页面不会通过ajax加载,另一种方法是在page中加载CSS和Javascript。这里就不细说了。

10.手机Web调试刚开始的时候,每次调试一个页面,都要把手机连接到WIFI才能刷新,实在是忍无可忍!终于学好了.推荐这个网站:http://www.responsinator.com/?网址=把你的网页网址放在最上面的输入框然后“Go”,你可以看到你的网页在各种平台上显示,甚至是Kindle.当然,对于开发者来说必不可少的谷歌,也可以作为我们的移动浏览器。按F12进入开发者模式,点击右下角的设置图标,可以在Overrides中设置用户代理和设备指标,效果同样不错。

版权声明:使用PHP开发微信公众平台示例是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。