关于这个小程序Github:https://github.com/DowneyL/di...'这个小程序是公司需求的一个产品,这个产品是Discuz(我知道没人用,别吐槽),版本是X3.2,还是GBK编码!公司给了需求,稍微了解了一下小程序,就直接上手了。在网上找了一个基础版(可惜不是我自己全部写的),修复了一些bug,增加了一些功能,砍掉了一些Function,兼容GBK版的Discuz,简单设计一下样式小程序,产品基本成型。之所以分享,是因为与Discuz相关的文档和产品实在是太少了。我想把它记录在一个平台上。如果遇到有缘人,我或许可以给他一些东西。0.0\我的收获对API开发有了一些了解(正好暑期大师有新书,更新后买来看)微信公众号开发(原生PHP开发微信公众号,还有超神Easywechat)也成功对接了公众号的公司论坛,在公众号上变现,领取了论坛钱红包。微信小程序开发(官方文档,正在开发的小程序源码,给了我很多启发)HTTP转HTTPS小程序富文本解析(一个优秀的开源项目:wxParse-微信小程序富文本解析组件)功能是:分析您论坛的帖子内容,您论坛的粗体文字,彩色文字,图片等,都可以原样显示在小程序中。FlexLayout下面是阮老师的两篇文章。()函数,论坛上可能没有,在inc.php文件中已经实现了相同的get_url_content()函数。函数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);如果(!curl_exec($ch)){error_log(curl_error($ch));$数据='';}else{$data=curl_multi_getcontent($ch);}curl_close($ch);return$data;}由于论坛整体格式为GBK,与微信服务器交互必须使用UTF-8编码,所以优化了部分界面编码。在输出的情况下,error.php下有一个array_iconv()函数,可以将输出的数组转成编码。静态函数array_iconv($str,$in_charset="UTF-8",$out_charset=CHARSET){if(is_array($str)){foreach($stras$k=>$v){$str[$k]=WmApiError::array_iconv($v,$in_charset,$out_charset);}返回$str;}else{if(is_string($str)){//返回iconv('UTF-8','GBK//IGNORE',$str);返回mb_convert_encoding($str,$out_charset,$in_charset);}else{返回$str;}}在acceptance的情况下,inc.php下有一个getDataForCharset()函数来整合接受的编码。函数getDataForCharset($data){返回(CHARSET!='UTF-8')?dhtmlspecialchars(WmApiError::array_iconv($data)):dhtmlspecialchars($data);}关闭微信登录功能。获取帖子、消息时添加了帖子的具体内容。优化了其他一些细节的内容。第二节wxParse做了什么输出帖子时,解码DiscuzCode,同时获取图片附件和表情图片。在接受时,解析粗体、高亮、斜体、字体等文本。让帖子按原样输出。以上函数主要集中在wmapi/get_post_detail.php和wmapi/get_self_post.php这两个脚本。第三节小程序获取数据的方式是get_url_content(),部分是file_get_content()(生产环境可能因为设置问题所以怪怪的,请结合自己的服务器看)首页新增加载状态(加载中...没有更多...暂无数据...)无法显示群帖、群名。小程序向服务器传输中文字符串时,先是encodeURI(),然后是论坛服务器上的urldecode(),最后是UTF8->GBK转码,当然是必须的。基本显示
