微信公众平台自定义菜单
最近微信公众平台挺火的,肯定好多公司像我们公司一样,要开发微信公众平台,在此记录一下在制作 自定义菜单时遇到的问题,
希望能给某些人点思路,或少走点弯路.
为了动态修改自定义菜单,把菜单项存入数据库中 $arr是从数据库查询出来的经过处理后的数组格式为:
array(1) { ["button"] => array(3) { [0] => array(3) { ["type"] => string(4) "view" ["name"] => string(12) "公司新闻" ["url"] => string(24) "http://www.google.com.tw" } [1] => array(3) { ["type"] => string(4) "view" ["name"] => string(12) "公司案例" ["url"] => string(20) "http://www.baidu.com" } [2] => array(2) { ["name"] => string(12) "智能家居" ["sub_button"] => array(5) { [0] => array(3) { ["type"] => string(5) "click" ["name"] => string(12) "功能描述" ["key"] => string(10) "smart_desc" } [1] => array(3) { ["type"] => string(5) "click" ["name"] => string(12) "每日一点" ["key"] => string(9) "day_click" } [2] => array(3) { ["type"] => string(5) "click" ["name"] => string(12) "一天一点" ["key"] => string(13) "eve_day_click" } [3] => array(3) { ["type"] => string(5) "click" ["name"] => string(12) "休闲时刻" ["key"] => string(11) "xiuxian_day" } [4] => array(3) { ["type"] => string(5) "click" ["name"] => string(12) "做人好难" ["key"] => string(3) "nan" } } } } }
在添加菜单的时候发现直接json_encode($arr);会提示40016错误:不合法的按钮个数
在调用了json_encode函数之后所有中文被转换成 "\u8fd9" 这种形式,
为了使用json_encode处理后的结构而不改变中文可以使用如下函数(来源于互联网):
/************************************************************** * * 使用特定function对数组中所有元素做处理 * @param string &$array 要处理的字符串 * @param string $function 要执行的函数 * @return boolean $apply_to_keys_also 是否也应用到key上 * @access public * *************************************************************/ function arrayRecursive(&$array, $function, $apply_to_keys_also = false) { static $recursive_counter = 0; if (++$recursive_counter > 1000) { die('possible deep recursion attack'); } foreach ($array as $key => $value) { if (is_array($value)) { self::arrayRecursive($array[$key], $function, $apply_to_keys_also); } else { $array[$key] = $function($value); } if ($apply_to_keys_also && is_string($key)) { $new_key = $function($key); if ($new_key != $key) { $array[$new_key] = $array[$key]; unset($array[$key]); } } } $recursive_counter--; } /************************************************************** * * 将数组转换为JSON字符串(兼容中文) * @param array $array 要转换的数组 * @return string 转换得到的json字符串 * @access public * *************************************************************/ function JSON($array) { self::arrayRecursive($array, 'urlencode', true); $json = json_encode($array); return urldecode($json); }
执行添加:
function apply(){ $token_str = self::get_access_token(); $del_url = "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token={$token_str}"; file_get_contents($del_url); $apply_url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token={$token_str}"; $data = self::JSON(self::get_menu());//json化中文不变 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $apply_url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); curl_close($ch); $result = json_decode($result,true); $this->redirect("Menu/index",array( 'msg'=>($result['errcode']==0?'操作成功':'操作失败'), 'state'=>$result['errcode']==0 ? 0 : 1 )); }
OK添加成功 ^_^ ,仅供参考
当然代码过多发到首页肯定是过不了的,不过为了让更多人看到还是厚着脸色发布到首页(不知道能在首页呆几分钟~

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Cet article fournit un guide détaillé pour le téléchargement en toute sécurité de l'application OUYI OKX en Chine. En raison des restrictions sur les magasins d'applications nationales, il est conseillé aux utilisateurs de télécharger l'application via le site officiel d'Ouyi OKX, ou d'utiliser le code QR fourni par le site officiel pour analyser et télécharger. Pendant le processus de téléchargement, assurez-vous de vérifier l'adresse officielle du site Web, de consulter les autorisations d'application, d'effectuer une analyse de sécurité après l'installation et d'activer la vérification à deux facteurs. Pendant l'utilisation, veuillez respecter les lois et réglementations locales, utiliser un environnement de réseau sûr, protéger la sécurité des comptes, être vigilant contre la fraude et investir rationnellement. Cet article est pour référence uniquement et ne constitue pas des conseils d'investissement.

H5. La principale différence entre les mini programmes et l'application est: Architecture technique: H5 est basé sur la technologie Web, et les mini-programmes et l'application sont des applications indépendantes. Expérience et fonctions: H5 est légère et facile à utiliser, avec des fonctions limitées; Les mini-programmes sont légers et ont une bonne interactivité; Les applications sont puissantes et ont une expérience fluide. Compatibilité: H5 est compatible multiplateforme, les applets et les applications sont limités par la plate-forme. Coût de développement: H5 a un faible coût de développement, des mini-programmes moyens et une application la plus élevée. Scénarios applicables: H5 convient à l'affichage d'informations, les applets conviennent aux applications légères et les applications conviennent aux fonctions complexes.

Problèmes de compatibilité et méthodes de dépannage pour les logiciels et applications de sécurité de l'entreprise. De nombreuses entreprises installeront des logiciels de sécurité afin d'assurer la sécurité intranet. Cependant, les logiciels de sécurité parfois ...

Le choix de H5 et Applet dépend des exigences. Pour les applications avec une plate-forme multiplateuse, un développement rapide et une éleve élevée, choisissez H5; Pour les applications avec une expérience native, des fonctions riches et des dépendances de plate-forme, choisissez des applets.

Cet article fournit un bref guide pour l'achat et la vente de monnaie virtuelle de binance mise à jour en 2025 et explique en détail les étapes de fonctionnement des transactions de devises virtuelles sur la plate-forme de binance. Le guide couvre l'achat de monnaie Fiat USDT, l'achat de transactions en devises d'autres devises (tels que BTC) et les opérations de vente, y compris le trading du marché et la limite de trading. En outre, le guide rappelle également spécifiquement les risques clés tels que la sécurité des paiements et la sélection du réseau pour les transactions de monnaie fiduciaire, aidant les utilisateurs à effectuer des transactions de binance en toute sécurité et efficacement. Grâce à cet article, vous pouvez rapidement maîtriser les compétences de l'achat et de la vente de monnaies virtuelles sur la plate-forme Binance et de réduire les risques de transaction.

H5 est plus flexible et personnalisable, mais nécessite une technologie qualifiée; Les mini-programmes sont rapides à démarrer et faciles à entretenir, mais sont limités par le cadre WeChat.

Le quartier panoramique de Lianyungang Huaguoshan se joint à Tencent Cloud pour lancer le premier homo numérique "à double cœur" Homo Sapiens dans l'industrie culturelle et touristique - Monkey King! Le 1er mars, l'endroit pittoresque a officiellement connecté le King Monkey à la plate-forme Deepseek, de sorte qu'il a les deux capacités de modèle d'IA de Tencent Hunyuan et Deepseek, apportant aux touristes une expérience de service plus intelligente et plus prévenante. Huaguoshan Scenic Area a précédemment lancé le Roi singe du Digital Homo Sapiens basé sur le modèle Tencent Hunyuan. Cette fois, Tencent Cloud utilise en outre des technologies telles que le moteur de connaissances Big Model pour le connecter à Deepseek pour obtenir une mise à niveau "double core". Cela rend la capacité interactive du singe à un niveau supérieur, une vitesse de réponse plus rapide, une capacité de compréhension plus forte et plus de chaleur. Monkey King a de fortes capacités de traitement du langage naturel et peut comprendre diverses façons de poser des questions aux touristes.

Discussion sur le numéro de mise en cache des ressources JS d'Enterprise WeChat. Lors de la mise à niveau des fonctions du projet, certains utilisateurs rencontrent souvent des situations où ils ne parviennent pas à mettre à niveau avec succès, en particulier dans l'entreprise ...
