目录
使用PHP进行微信公众平台开发的示例,php公众
首页 后端开发 php教程 使用PHP进行微信公众平台开发的示例,php公众_PHP教程

使用PHP进行微信公众平台开发的示例,php公众_PHP教程

Jul 13, 2016 am 09:44 AM
php 微信

使用PHP进行微信公众平台开发的示例,php公众

1. SAE 数据库的连接。

需要主机名和端口,以后的使用是一样的。

@ $db = new mysqli(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS,'你的应用名'); 
登录后复制

2.XML 的处理。

微信发送的消息格式都是 XML 格式,你返回的消息也必须是 XML 格式。从 XML 里提取数据,用 SimpleXML,强大又容易使用。包装成 XML 消息呢?把消息模板保存为字符串,然后用 sprintf 进行格式化输出。

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

//---------- 接 收 数 据 ---------- // 
 
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //获取POST数据 
 
//用SimpleXML解析POST过来的XML数据 
$postObj = simplexml_load_string($postStr,'SimpleXMLElement',LIBXML_NOCDATA); 
 
$fromUsername = $postObj->FromUserName; //获取发送方帐号(OpenID) 
$toUsername = $postObj->ToUserName; //获取接收方账号 
$msgType = $postObj->MsgType; //消息内容 
登录后复制

返回文本消息:

function sendText($to, $from, $content, $time) 
{ 
  //返回消息模板 
  $textTpl = "<xml> 
  <ToUserName><![CDATA[%s]]></ToUserName> 
  <FromUserName><![CDATA[%s]]></FromUserName> 
  <CreateTime>%s</CreateTime> 
  <MsgType><![CDATA[%s]]></MsgType> 
  <Content><![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 是很方便的。对于抓取 API 内容,用重新封装的函数:

function my_get_file_contents($url){ 
 
  if(function_exists('file_get_contents')){ 
 
    $file_contents = file_get_contents($url); 
 
  } 
  else 
  {     
    //初始化一个cURL对象 
    $ch = curl_init(); 
 
    $timeout = 5; 
 
    //设置需要抓取的URL 
    curl_setopt ($ch, CURLOPT_URL, $url); 
 
    //设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上 
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
 
    //在发起连接前等待的时间,如果设置为0,则无限等待 
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
 
    //运行cURL,请求网页 
    $file_contents = curl_exec($ch); 
 
    //关闭URL请求 
    curl_close($ch); 
  } 
 
  return $file_contents; 
} 

百度翻译 API 的调用如下:
function baiduDic($word,$from="auto",$to="auto"){ 
     
  //首先对要翻译的文字进行 urlencode 处理 
  $word_code=urlencode($word); 
     
  //注册的API Key 
  $appid="yourAPIkey"; 
     
  //生成翻译API的URL GET地址 
  $baidu_url = "http://openapi.baidu.com/public/2.0/bmt/translate&#63;client_id=".$appid."&q=".$word_code."&from=".$from."&to=".$to; 
     
  $text=json_decode(my_get_file_contents($baidu_url)); 
 
  $text = $text->trans_result; 
 
  return $text[0]->dst; 
} 

登录后复制

4.对 “附近” 的经纬度的计算。

用如下模型,计算正方形的经纬度。采用 Haversin 公式。

//$EARTH_RADIUS = 6371;//地球半径,平均半径为6371km 
 /** 
 *计算某个经纬度的周围某段距离的正方形的四个点 
 * 
 *@param lng float 经度 
 *@param lat float 纬度 
 *@param distance float 该点所在圆的半径,该圆与此正方形内切,默认值为0.5千米 
 *@return array 正方形的四个点的经纬度坐标 
 */ 
function returnSquarePoint($lng, $lat,$distance = 0.5){ 
  
  $EARTH_RADIUS = 6371; 
  $dlng = 2 * asin(sin($distance / (2 * $EARTH_RADIUS)) / cos(deg2rad($lat))); 
  $dlng = rad2deg($dlng); 
    
  $dlat = $distance/$EARTH_RADIUS; 
  $dlat = rad2deg($dlat); 
    
  return array( 
        'left-top'=>array('lat'=>$lat + $dlat,'lng'=>$lng-$dlng), 
        'right-top'=>array('lat'=>$lat + $dlat, 'lng'=>$lng + $dlng), 
        'left-bottom'=>array('lat'=>$lat - $dlat, 'lng'=>$lng - $dlng), 
        'right-bottom'=>array('lat'=>$lat - $dlat, 'lng'=>$lng + $dlng) 
        ); 
 } 

将查询结果按时间降序排列,message 为数据库中的一个表,location_X 为维度,location_Y 为经度:
//使用此函数计算得到结果后,带入sql查询。 
  $squares = returnSquarePoint($lng, $lat); 
  $query = "select * from message where location_X != 0 and  
      location_X > ".$squares['right-bottom']['lat']." and location_X< ".$squares['left-top']['lat']  
      ."and location_Y > ".$squares['left-top']['lng']." and location_Y< ".$squares['right-bottom']['lng']  
       ."order by time desc"; 

登录后复制

5. 对字符串的检查。

限定为 6-20个字母,符合则返回 true ,否则返回 false,采用正则表达式进行匹配:

function inputCheck($word) 
{ 
  if(preg_match("/^[0-9a-zA-Z]{6,20}$/",$word)) 
  { 
    return true; 
  } 
  return false; 
} 
登录后复制

6.对含中文的字符串取子串时,用 mb_substr 进行截取 http://www.php.net/manual/zh/function.mb-substr.php

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

<&#63;php  
  $str = "三知sunchis开发网";  
  echo strlen($str)."<br>";        //结果:22  
  echo mb_strlen($str,"UTF8")."<br>";   //结果:12  
  $strlen = (strlen($str)+mb_strlen($str,"UTF8"))/2;  
  echo $strlen;              //结果:17  
&#63;>  
登录后复制

8. 检测是否含有中文

<&#63; 
$str = "测试中文"; 
echo $str; 
echo "<hr>"; 
//if (preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $str)) { //只能在GB2312情况下使用 
//if (preg_match("/^[\x7f-\xff]+$/", $str)) { //兼容gb2312,utf-8 //判断字符串是否全是中文 
if (preg_match("/[\x7f-\xff]/", $str)) { //判断字符串中是否有中文 
echo "正确输入"; 
} else { 
echo "错误输入"; 
} 
&#63;> 
登录后复制

双字节字符编码范围
1. GBK (GB2312/GB18030)
\x00-\xff GBK双字节编码范围
\x20-\x7f   ASCII
\xa1-\xff    中文 gb2312
\x80-\xff    中文 gbk

2. UTF-8 (Unicode)
\u4e00-\u9fa5    中文
\x3130-\x318F    韩文
\xAC00-\xD7A3   韩文
\u0800-\u4e00   日文

9. Jquery Mobile 的使用
    官网:http://blog.jquerymobile.com/
    原来自己写手机网页,真是无比痛苦,CSS 调试各种烦,跨平台也很不好,后来发现了这个库,果然简单了好多,而且界面看起来漂亮多了。
    不过也引入了一些新的问题,比如页面内 CSS 和 Javascript 的加载,因为 Jquery Mobile 默认是使用 Ajax 加载页面的,并不会刷新整个 html ,而是请求一个 page 而已,所以对于多个 page 的页面不会完全加载,对于 head 里面的 CSS 和 Javascript 也不会加载,所以一个方法是在链接的属性里设置 ajax=false,指明不通过 Ajax 加载页面,另一个是把 CSS 和 Javascript 的加载放在 page 里面。在这里就不具体谈了。

10. 移动 Web 调试
    一开始每次调试个页面都要手机连接 WIFI 去刷新,简直不能忍!后来终于学乖了...
    推荐这个网站:http://www.responsinator.com/?url=  把自己的网页 url 放在顶端的输入框里面然后“Go”,你就可以看到自己网页在各个平台下了显示效果,连 Kindle 都有..
    当然,开发者必备的谷歌也可以为我们代理成手机浏览器,按 F12 进入开发者模式然后点击右下角的 setting 的图标,可以在 Overrides 里面设置 User Agent 和 Device metrics,效果同样不错。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1049136.htmlTechArticle使用PHP进行微信公众平台开发的示例,php公众 1. SAE 数据库的连接。 需要主机名和端口,以后的使用是一样的。 @ $db = new mysqli(SAE_MYSQL_HOS...
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1667
14
CakePHP 教程
1426
52
Laravel 教程
1328
25
PHP教程
1273
29
C# 教程
1255
24
PHP和Python:解释了不同的范例 PHP和Python:解释了不同的范例 Apr 18, 2025 am 12:26 AM

PHP主要是过程式编程,但也支持面向对象编程(OOP);Python支持多种范式,包括OOP、函数式和过程式编程。PHP适合web开发,Python适用于多种应用,如数据分析和机器学习。

在PHP和Python之间进行选择:指南 在PHP和Python之间进行选择:指南 Apr 18, 2025 am 12:24 AM

PHP适合网页开发和快速原型开发,Python适用于数据科学和机器学习。1.PHP用于动态网页开发,语法简单,适合快速开发。2.Python语法简洁,适用于多领域,库生态系统强大。

PHP和Python:深入了解他们的历史 PHP和Python:深入了解他们的历史 Apr 18, 2025 am 12:25 AM

PHP起源于1994年,由RasmusLerdorf开发,最初用于跟踪网站访问者,逐渐演变为服务器端脚本语言,广泛应用于网页开发。Python由GuidovanRossum于1980年代末开发,1991年首次发布,强调代码可读性和简洁性,适用于科学计算、数据分析等领域。

为什么要使用PHP?解释的优点和好处 为什么要使用PHP?解释的优点和好处 Apr 16, 2025 am 12:16 AM

PHP的核心优势包括易于学习、强大的web开发支持、丰富的库和框架、高性能和可扩展性、跨平台兼容性以及成本效益高。1)易于学习和使用,适合初学者;2)与web服务器集成好,支持多种数据库;3)拥有如Laravel等强大框架;4)通过优化可实现高性能;5)支持多种操作系统;6)开源,降低开发成本。

PHP的影响:网络开发及以后 PHP的影响:网络开发及以后 Apr 18, 2025 am 12:10 AM

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

公司安全软件导致应用无法运行?如何排查和解决? 公司安全软件导致应用无法运行?如何排查和解决? Apr 19, 2025 pm 04:51 PM

公司安全软件导致部分应用无法正常运行的排查与解决方法许多公司为了保障内部网络安全,会部署安全软件。...

PHP与Python:用例和应用程序 PHP与Python:用例和应用程序 Apr 17, 2025 am 12:23 AM

PHP适用于Web开发和内容管理系统,Python适合数据科学、机器学习和自动化脚本。1.PHP在构建快速、可扩展的网站和应用程序方面表现出色,常用于WordPress等CMS。2.Python在数据科学和机器学习领域表现卓越,拥有丰富的库如NumPy和TensorFlow。

继续使用PHP:耐力的原因 继续使用PHP:耐力的原因 Apr 19, 2025 am 12:23 AM

PHP仍然流行的原因是其易用性、灵活性和强大的生态系统。1)易用性和简单语法使其成为初学者的首选。2)与web开发紧密结合,处理HTTP请求和数据库交互出色。3)庞大的生态系统提供了丰富的工具和库。4)活跃的社区和开源性质使其适应新需求和技术趋势。

See all articles