小程序 Github 分享:修复 BUG、新增功能并兼容 GBK 版本的 Discuz

2024-07-24
来源:网络整理

关于此小程序

:'

这个小程序是某公司对自己的一个产品的需求,而这个产品(我知道用的人不多,所以别抱怨了)版本是X3.2,而且还是GBK编码!

公司给了我需求,我了解了一些小程序的知识之后,就开始动手做了,网上找了一个基础版本(可惜不是全部都是我写的),修改了一些bug,增加了一些功能,去掉了一些功能,兼容了GBK版本,简单设计了一下小程序的风格,产品基本就出来了。

我分享这个是因为相关的文档和产品太少了,想记录下来放在一个平台上,如果遇到有缘人分享,说不定能给他带来点好处。0.0\

我的收获:对API开发有些了解(正好大神出新书,买了等完成后再看)微信公众号开发(微信公众号原生PHP开发,超神)

我们还成功把公司论坛和公众号关联了起来,这样用户在公众号上就能收到论坛红包了。 微信小程序开发(官方文档和正在开发的小程序源码给了我很多启发) 小程序上http转富文本解析(一个很优秀的开源项目:-微信小程序富文本解析组件)

该功能是分析你的论坛帖子内容,你论坛上的粗体文字、彩色文字、图片等都可以在小程序中原封不动的展示出来。

这里分享两篇阮老师的文章,Flex 教程:语法,Flex 教程:示例。两个 UI 组件 weui,.....一些细节主要有以下几个函数,需要记录在第一节()函数中,论坛上可能没有,在 inc.php 文件中已经实现了同样的功能

get_url_content() 函数。 function get_url_content($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); # curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); if (!curl_exec($ch)) { error_log(curl_error($ch)); $data = ''; } else { $data = curl_multi_getcontent($ch); } curl_close($ch); return $data; }

由于论坛整体格式为GBK,而与微信服务器交互必须使用UTF-8编码,因此对接口编码进行了部分优化。

输出的话.php下有一个()函数,可以将输出的数组转化成编码。

static function array_iconv($str, $in_charset = "UTF-8", $out_charset = CHARSET) { if (is_array($str)) { foreach ($str as $k => $v) { $str[$k] = WmApiError::array_iconv($v, $in_charset, $out_charset); } return $str; } else { if (is_string($str)) { // return iconv('UTF-8', 'GBK//IGNORE', $str); return mb_convert_encoding($str, $out_charset, $in_charset); } else { return $str; } }

在接受的情况下,inc.php下有一个()函数用于集成接受编码。

function getDataForCharset($data) { return (CHARSET != 'UTF-8') ? dhtmlspecialchars(WmApiError::array_iconv($data)) : dhtmlspecialchars($data); }

关闭了微信登录功能。增加了获取帖子时显示帖子的具体内容。优化了其他一些细节的内容。第二节做的是在输出帖子时解码Code,同时获取图片附件和表情图片。在接受时解析文字加粗,高亮,斜体,字体等。让帖子原样输出。上面的函数在/.php和/.php两个脚本中高亮。第三节部分获取小程序的数据,方式如下()部分为()(生产环境可能因为设置问题,所以比较奇怪,请结合自己的服务器)首页增加了一个状态(... 暂无... 暂无数据...)群帖不能显示群名称。小程序在向服务器传递中文字符串时,先()再向论坛服务器()最后进行UTF8->GBK转码,当然必要时也可以进行基本显示

分享