香港高速VIP云机房火爆上线啦!无需备案,开通即用!配套《巅云自助建站系统3.0》将带给您飞一般的可视化拖拽建站体验,欢迎免费体验。

PHP原生微信公众号开发之自定义菜单网站源码的实现分享

一佰互联网站制作(www.yinxi.net) 发布日期 2018-07-11 01:41:32 浏览数: 1564

打算开发微网站自定义菜单,搜索网上都是一些写死的例子,作为多用户网站管理系统“巅云建站系统”就需要根据不同用户设置生成不同的公众号菜单,包括一二级菜单,微网站开发中自定义菜单实现其实很简单,我们把我在我司“巅云智能建站系统”开发中的实现原理分享出来,希望对新手小白开发自定义菜单有帮助。由于是多用户系统,当然比普通开发要多出获取用户的步骤。当然如果你也是网站建设从业者可以购买我司的建站系统平台版,可二次开发。详情登陆:http://www.yinxi.net/design/#websites-taocan 1880元起(单用户),多用户版(8000元,自助建站平台)<?php//前三行为巅云专用引入基础配置代码session_start();require_once("../common/common.php");$web=get_web();//获取当前网站用户名//数据库连接代码$con=mysql_connect(DB_SERVER,DB_LOGIN,DB_PW) or die("Unable to connect to the MySQL!");$db = mysql_select_db(DB_NAME,$con);//据不同网站读取数据库微信配置。$sql = "select * from wx_config where  user='$web' ";$rs  = mysql_query($sql);while($row_p=mysql_fetch_assoc($rs)){$appid=$row_p['appid'];$appsecret= $row_p['appsecret']; }////////////判断是不是网址,后边组装菜单JOSON 数据时用,如果是"key":"关键词" 否则 "url":"网址"function check_url($url){    if(!preg_match('/http:\/\/[\w.]+[\w\/]*[\w.]*\??[\w=&\+\%]*/is',$url)){        return false;    }    return true;} ///////////引入没有设置par_type(父级ID)限制三个一级菜单$sqlmenu = "select * from wx_menu where par_type='' and  user='$web' limit 3";$rsmenu  = mysql_query($sqlmenu);$rowNum = mysql_num_rows($rsmenu);//实际数量 $jsonmenu  = '{"button":[';//菜单头//两个记数器,一二级while循环自增,当循环次数等于实际数量时去除“,”号,限如果分别是一级菜单和每个一级菜单最后一个时不需要","号分隔了。 $counter = 0;  $counter2 = 0;//循环一级菜单while($row_menu=mysql_fetch_assoc($rsmenu)){//while$counter = $counter + 1;//查询是否有二级菜单$sqlmenu2 = "select * from wx_menu where par_type={$row_menu['id']} and  user='$web' limit 5";$rsmenu2  = mysql_query($sqlmenu2);$rowNum2 = mysql_num_rows($rsmenu2);$jsonmenu.='{';$jsonmenu.='"name":"'.$row_menu['name'].'",';if(!$rowNum2){if($row_menu['type']){$jsonmenu.='"type":"'.$row_menu['type'].'",';}if($row_menu['Key_url']){	$isurl=check_url($row_menu['Key_url']);if($isurl){   $keyt="url";}else{   $keyt='key';}if($rowNum2){$jsonmenu.='"'.$keyt.'":"'.$row_menu['Key_url'].'",';}else{$jsonmenu.='"'.$keyt.'":"'.$row_menu['Key_url'].'"';}}}if($rowNum2){$jsonmenu.='"sub_button":[';}while($row_menu2=mysql_fetch_assoc($rsmenu2)){//while$counter2 = $counter2 + 1;$jsonmenu.='{';$jsonmenu.='"name":"'.$row_menu2['name'].'",';if($row_menu2['type']){$jsonmenu.='"type":"'.$row_menu2['type'].'",';}if($row_menu2['Key_url']){	$isurl2=check_url($row_menu2['Key_url']);if($isurl2){   $keyt2="url";}else{   $keyt2='key';}$jsonmenu.='"'.$keyt2.'":"'.$row_menu2['Key_url'].'"';} if ($counter2 < $rowNum2){ $jsonmenu.='},'; } else{$jsonmenu.='}'; }}//whileoverif($rowNum2){$jsonmenu.=']';} if ($counter < $rowNum){ $jsonmenu.='},'; } else{$jsonmenu.='}'; }}//whileover $jsonmenu.= ']}';//menu createecho $jsonmenu;//创建菜单$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret=$appsecret"; $output = https_request($url); $jsoninfo = json_decode($output,true); $access_token=$jsoninfo["access_token"]; /*$jsonmenu = '{   "button":[   {    "name":"学校系统",    "sub_button":[     {      "type":"click",      "name":"课程表",      "key":"课程表"    },     {      "type":"click",      "name":"个人信息",      "key":"个人信息"    },     {      "type":"click",      "name":"平时成绩",      "key":"平时成绩"    },     {      "type":"click",      "name":"奖惩记录",      "key":"奖惩记录"    }    ]   },   {    "name":"技术分享",    "sub_button":[     {      "type":"click",      "name":"移动WEB开发",      "key":"移动WEB开发"    },     {      "type":"click",      "name":"J2EE框架",      "key":"J2EE框架"    },     {      "type":"click",      "name":"Android开发",      "key":"Android开发"    },     {      "type":"click",      "name":"PHP框架",      "key":"PHP框架"    }    ]   },{    "name":"技术支持",    "sub_button":[     {      "type":"click",      "name":"在线客服",      "key":"在线客服"    },     {      "type":"click",      "name":"技术分享",      "key":"技术分享"    },     {      "type":"view",      "name":"天气预报",      "url":"http://m.hao123.com/a/tianqi"    }    ]   }  ]  }';   */ //创建菜单实现  $url = 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token='.$access_token;  $result = https_request($url,$jsonmenu);  var_dump($result);  function https_request($url,$data = null){   $curl = curl_init();   curl_setopt($curl,CURLOPT_URL,$url);   curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);   curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);   if(!empty($data)){    curl_setopt($curl,CURLOPT_POST,1);    curl_setopt($curl,CURLOPT_POSTFIELDS,$data);   }   curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);   $output = curl_exec($curl);   curl_close($curl);   return $output;  }?>

一佰互联是全国知名建站品牌服务商,我们有九年网站建设、网站制作、网页设计、php开发和域名注册及虚拟主机服务经验,提供的自助建站服务更是全国有名。近年来还整合团队优势自主开发了可视化多用户”巅云建站系统“3.0平台版,拖拽排版网站制作设计,轻松实现pc站、手机微网站、小程序、APP一体化全网营销网站建设 ,已成功的为全国上百家网络公司提供自助建站平台搭建服务。

相关新闻more

30
04月
php数组函数序列之array_push()

array_push() 定义和用法 array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。... >>详情

26
03月
想要快速成为抖音运营大神?

简介:玩抖音的朋友都知道视频内容很重要,平时我们在抖音平台看到上热门的爆款视频基本都具有一定的创意性。因此笔者认为,要玩好抖音,那就先从内容... >>详情

29
04月
一个PHP二维数组排序的函数分享

二维数组在PHP开发中经常遇到,但是他的排序就不如一维数组那样用内置函数来的方便了,二维数组的排序需要我们自己写函数处理了,这里UncleT... >>详情

11
05月
专业网站设计公司,一个真实的好网站

中国的网民大都知道百度,谷歌等大型知名度极高的网站,我们用的百度是最多的,因为它很便捷,全能型的搜索型网站,能搜索到任何你想要的东西。而在专... >>详情

营业执照. cdn加速服务 备案系统认证 网络安全协会 我们的支付方式AAA认证
上海 北京 深圳 广州 天津 杭州 南京 武汉 成都 沈阳 大连 长沙 济南 青岛 苏州 福州 无锡 哈尔滨 宁波 重庆 大庆 厦门 西安 长春 珠海 郑州 海口 昆明 太原 石家庄 温州 合肥 乌鲁木齐 南宁 南通 合肥 兰州 呼和浩特 贵阳 烟台 秦皇岛 包头 唐山 银川 汕头 连云港 威海 西宁 湛江 北海 万州 涪陵 长寿 黔江 永川 丰都 忠县 江津 南川 开县 云阳 万盛 梁平 垫江 巫山 城口 建站宝盒 免费建站 门户网站建设 微信网站 手机网站 门户网站制作

7x24小时服务电话:18581389571 传真:023-85725751 免费建站交流群:236412099 139947842(自助建站交流) E-Mail:post@yinxi.net 网站投诉:
重庆楚捷科技有限公司 一佰互联©版权所有 自助建站(www.yinxi.net,Inc.) 2001-2020 All Rights Reserved 本站程序受法律保护,网站法律顾问:ITLAW-庄毅雄律师
中华人民共和国信息产业部网站备案号:渝ICP备12000592号