[分享] 微信公众号菜单的前缀图标[thinkPHP]

时间:2022-09-04 23:37:08
[分享] 微信公众号菜单的前缀图标[thinkPHP]


<?php

namespace Admin\Controller;

use Think\Controller;

class WeixinMenusController extends Controller {
public function set_weixin_menus() {

// 引入微信类
$IncludePath = C ( 'IncludePath' );
require_once $IncludePath . 'weixin/' . 'wechat.class.php';

// 定义类--请注意config.php文件中的参数设置
$options = array (
'token' => C ( 'weixin_Token' ),
'appid' => C ( 'weixin_AppId' ),
'appsecret' => C ( 'weixin_AppSecret' ) 
);
// $weObj = new Wechat ( $options );
$weObj = new \Wechat ( $options );

// 定义菜单数组
// 菜单1及其子菜单
$menusArray [0] ['name'] = '菜单1';
$menusArray [0] ['type'] = 'click';
$menusArray [0] ['key'] = 'menu_1';
// 子菜单为消息类型
$menusArray [0] ['sub_button'] [0] ['name'] = '菜单1_1';
$menusArray [0] ['sub_button'] [0] ['type'] = 'click';
$menusArray [0] ['sub_button'] [0] ['key'] = 'menu_1_1';
// 子菜单为链接--打开百度
$menusArray [0] ['sub_button'] [1] ['name'] = '菜单1_2';
$menusArray [0] ['sub_button'] [1] ['type'] = 'view';
$menusArray [0] ['sub_button'] [1] ['key'] = 'menu_1_2';
$menusArray [0] ['sub_button'] [1] ['url'] = 'http://www.baidu.com';
// 菜单2
$menusArray [1] ['name'] = '菜单2' . $this->unicode2utf8_2 ( '\ue159' );
$menusArray [1] ['type'] = 'click';
$menusArray [1] ['key'] = 'menu_2';
// 菜单3--点击打开一个QQ网页
$menusArray [2] ['name'] = '菜单3';
$menusArray [2] ['type'] = 'view';
$menusArray [2] ['key'] = 'menu_3';
$menusArray [2] ['url'] = 'http://www.qq.com';

$menusNavArray ['button'] = $menusArray;
// 调用接口完成菜单数据提交,二十四小时生效, 你可以取消息关注再重新关注,即可看到菜单效果
$weObj->createMenu ( $menusNavArray );

$message = "已向微信公众平台提交,二十四小时后生效。";
echo $message;
}
public function unicode2utf8_2($str) { // 关于unicode编码转化的第二个函数,用于显示emoji表情
$str = '{"result_str":"' . $str . '"}'; // 组合成json格式
$strarray = json_decode ( $str, true ); // json转换为数组,利用 JSON 对 \uXXXX 的支持来把转义符恢复为 Unicode 字符(by 梁海)
return $strarray ['result_str'];
}
}


源码下载

http://www.abis.com.cn/thread-919-1-1.html

2 个解决方案

#1


直接 
return json_decode('"' . $str . '"');
不是更简单?

#2


这个搞得好复杂

#1


直接 
return json_decode('"' . $str . '"');
不是更简单?

#2


这个搞得好复杂