个人案例
- 如何填写小程序隐私保护指引(仅供参考)
1、为了___开发者将在获取你的明示同意后,收集你的微信昵称、头像。(必填,不然会影响小程序点击授权登录无反应) 参考填写:保障你正常使用我们的服务,维护我们服务的正常运行,改进及优化我们的服务体验以及保障你的帐号安全;或者向你提供基础会员服务,帮助你完成注册成为会员或者减少用户注册流程,快速实现登录 2、为了____ 开发者将在获取你的明示同意后,收集你的位置信息。 参考填写:更好地为你提供周边门店/自提点;或者便捷你发现周边的餐饮、商店等生活服务信息 3、为了____ 开发者将在获取你的明示同意后,使用你的相册(仅写入)权限。 参考填写:保障你可以保存图片 4、为了____ 开发者将在获取你的明示同意后,收集你的手机号。 参考填写:提供商品订单发货服务 5、开发者 收集你选中的照片或视频信息 ,用于 发表评论、分享视频 6、开发者 使用你的通讯录(仅写入)权限 ,用于 获取保存平台客服热线 7、 开发者 收集你选中的文件 ,用于 编辑个人信息,提前上传,减少上传时间 8、开发者收集你的地址 ,用于 核实商品订单发货地区 9、开发者访你的蓝牙,用于设备连接,以便应用程序能够发现和连接附近的蓝牙设备 10、为了__开发者将在获取你的明示同意后,访问你的麦克风。 参考填写:用于社区发帖上传音频 11、开发者收集你的发票信息,用于 维护消费功能 ,或者是 用于 下单后及时索要发票,维护消费者权益 12、开发者读取你的剪切板,用于复制文本等相关信息 13、为了 ____ ,开发者将在获取你的明示同意后,访问你的摄像头。 参考填写:拍照上传产品图片,拍摄上传产品体验视频 14、开发者收集你的设备信息 用于保障你正常使用网络服务 ,或者用于 优化小程序系统,分析处理相关系统稳定性和兼容性问题,保障你正常使用网络服务 15、开发者收集你的订单信息,用于方便获取订单信息 , 或者用于用户查看管理订单状态、追踪订单进展以及获取售后服务 16、开发者获取你选择的位置信息,用于线下导航服务
05-06 - 3行代码搞定微信小程序接入DeepSeek满血版!
前言 由于最近 DeepSeek 火爆出圈,我相信大多数的微信小程序开发者开工第一个任务就是接入DeepSeek能力到自家的小程序产品中,接下来我分享下微信小程序快速接入DeepSeek的方法! 步骤 首先打开「微信开发者工具」进入左上角的「云开发」开通环境 [图片] 开通成功后可以云开发的控制台页面获取环境ID [图片] 第一步:初始化,建议放在app.js里面 [图片] [代码]// 微信小程序基础库从 3.7.1 版本开始内置了云开发 AI+ 能力,开发者可以直接通过小程序中的 wx.cloud.extend.AI 调用。 在使用基础库 AI+ 能力前,需要传入云开发环境进行初始化。 wx.cloud.init({ env: "环境ID" }); [代码] 第二步:在需要使用的页面添加调用DeepSeek代码 [代码]// 创建模型 const model = wx.cloud.extend.AI.createModel("deepseek"); const res = await model.generateText({ model: "deepseek-r1", messages: [{ role: "user", content: "9.9和9.11谁更大?" }], }); console.log(res); [代码] 请求返回,可以看到输出了的message中有思维链内容和结果内容 [图片] 以上这种方式是直接获取结果方式,如果做实时打印的效果,可以用流式使生成文本 [代码]// 创建模型 const model = wx.cloud.extend.AI.createModel("deepseek"); const res = await model.streamText({ data: { model: "deepseek-r1", messages: [ { role: "user", content: "9.9和9.11谁更大?" } ] } }); // 当使用 deepseek-r1 时,模型会生成思维链内容 for await (let event of res.eventStream) { if (event.data === '[DONE]') { continue; } const data = JSON.parse(event.data); // 打印思维链内容 const think = (data?.choices?.[0]?.delta)?.reasoning_content; if (think) { console.log(think); } // 打印生成文本内容 const text = data?.choices?.[0]?.delta?.content; if (text) { console.log(text); } } [代码] 到这里微信小程序加入DeepSeek满血版能力就搞定了! 编排AI智能体(Agent) 在实际业务中不仅仅是接入还需要用到给DeepSeek结合业务封装一个AI智能体,其中包含人设与回复约束以及相关专业知识库。这个时候首先进入云开发后台进行AI智能体的编排。 云开发地址:https://tcb.cloud.tencent.com/dev 进入云开发后后台找到【AI+】模块,然后可以新增Agent设置DeepSeek-671B模型,设置人设与回复逻辑和知识库,详细可见《如何快速开发一款AI小程序?》,这篇文章详细介绍了AI智能体的创建与知识库的设置。 [图片] 当我们编排好了Agent,在前端业务代码中如何调用呢? 以我创建好的【小红书爆款文案】智能体为例,可以在右边【接入引导】区域选中【SDK】 [图片] 这里面提供了详细的接入代码,直接复制使用即可,包含了以下功能下面所有功能都需要智能体ID,获取智能体ID方式如下: [图片] 发送消息 [代码]const res = await wx.cloud.extend.AI.bot.sendMessage({ data: { botId: '智能体ID', msg: "你是谁" } }) for await (let x of res.textStream) { console.log(x) } [代码] 获取 Agent 信息 [代码]const res = await wx.cloud.extend.AI.bot.get({ botId: "智能体ID" }); console.log(res); [代码] 查看与 Agent 的聊天记录 [代码]const res = await wx.cloud.extend.AI.bot.getChatRecords({ botId: "智能体ID", pageNumber: 1, pageSize: 10, sort: "asc", }); console.log(res); [代码] 对某一条聊天记录进行反馈 [代码]const res = await wx.cloud.extend.AI.bot.sendFeedback({ userFeedback: { botId: "智能体ID", recordId: "recordId-xxx", comment: "非常棒", rating: 5, tags: ["优美"], aiAnswer: "落英缤纷", input: "来个成语", type: "upvote", }, }); console.log(res); [代码] 查看反馈记录 [代码]const res = await wx.cloud.extend.AI.bot.getFeedBack({ botId: "智能体ID", from: 0, to: 0, maxRating: 4, minRating: 3, pageNumber: 1, pageSize: 10, sender: "user-a", senderFilter: "include", type: "upvote", }); console.log(res) [代码] 获取 Agent 推荐问题 [代码]const res = await wx.cloud.extend.AI.bot.getRecommendQuestions({ data: { botId: "智能体ID", msg: "你是谁" } }) for await (let x of res.textStream) { console.log(x) } [代码] 一键生成AI对话组件 除此之外如果还需要对话界面,可以进入「可视化开发」模块 [图片] 选择「从空白创建」应用,进入应用编辑台找到最右边的「区块」搜索「Agent」选中「Anget-UI」 [图片] 然后在配置里面输入智能体ID即可 [图片] 确认没有问题后,可以右上角「发布」选中「导出代码包」根据「使用指引」接入到自家微信小程序产品中 [图片] 前端AI智能体对话界面代码直接拿来就用! 除此之外也可以在微信开发者工具中新建小程序模板,选择 Agent UI 源码模板 [图片] 最后 这样一来从接入DeepSeek能力到根据业务定制化DeepSeek智能体再到AI对话界面统统搞定了!下班! 相关推荐 DeepSeek应用场景深度分析
02-19 - 一个标准的隐私协议模板如何填写
一个标准的隐私协议模板如何填写 ~ 近期审核都需要填写隐私协议,很多人都不知道从何处填写,现提供一个标准模板,可供大家参考 ~ [图片] ~ [图片] ~ 值得注意的是: 即使没有收集用户信息也建议如此操作,方可审核通过,这是经验贴,血淋淋的教训每天都还在发生 [图片] ~
2021-11-08 - 最新版原创答题小程序
最新版原创答题小程序:党建答题、智汇答题Plus、智汇答题、智汇驾考、答题酷。 简介 智汇答题Plus小程序适用于考核,评测等场景,分为五大功能:练习,考试,错题,收藏,排名;练习功能分为顺序答题和随机答题,模式分为答题模式和背题模式,答题模式可以在答完题目显示正确答案和帮助提示,可以进行跳题作答,背题模式可以直接查看正确答案和帮助提示,实时查看答题卡,统计答题情况,记忆功能,能够继续上次答题,也可以清除答题记录,重新答题。考试功能主要包括倒计时功能,随机取题功能,可单独对每个分类设置取题数量,答题时间,可以进行跳题作答,交卷评分,倒计时自动提示交卷;记忆功能,保存可下次继续做题。错题集功能主要是针对练习和答题两大模块的作答错题进行分类收集,可像练习功能一样进行答题模式和背题模式的作答方式,可移除错题,具有针对性的答题。收藏功能可以针对重点题目,错误题目进行收藏,然后重新重点练习;排名功能可以对每套试卷的作答人员进行分数等排名;答题记录可以随时查看用户的测试记录;针对部门考核,可以开启信息审核功能,只有通过审核的人员才可进入答题。支持开启和禁用练习功能。本程序还搭配管理后台,管理用户,系统设置,后台审核用户信息,发送模板消息通知用户,可以随时增加套题,增加题目,编辑题目,删除题目,以及使用模板批量的导入题目,查看答题记录,查看反馈意见等,非常方便实用!还附带说明完整的部署操作文档,以及小程序上线操作。 交流联系方式 QQ: 903363777 微信:kossfirst 部署文档:https://www.kancloud.cn/mamba/question 运行环境 PHP >=5.5.9 && PHP <=7.2 MySQL >=5.1 Apache、IIS、Nginx 注意 域名必须备案 小程序必须使用https协议 443端口 效果图 [图片] [图片] [图片] [图片] [图片] [图片] [图片] [图片] [图片] [图片] [图片] [图片] [图片] 党建答题小程序 [图片] [图片] [图片] [图片] [图片] [图片] [图片] 智汇驾考小程序,适用于驾考科目一,科目四考题的练习,覆盖驾驶证和资格证的考试,包括小车,货车,客车,摩托车,教练员,客运,货运,危险品,出租车,网约车等车型。功能包括:练习,答题,错题集,图标速记。练习功能分为答题模式和背题模式,答题模式可以在答完题目显示正确答案和帮助提示,可以进行跳题作答,背题模式可以直接查看正确答案和帮助提示,实时查看答题卡,统计答题情况,记忆功能,能够继续上次答题,也可以清除答题记录,重新答题。答题功能主要包括倒计时功能,随机取题功能,可以进行跳题作答,交卷评分,倒计时自动提示交卷。记忆功能,保存可下次继续做题。错题集功能主要是针对练习和答题两大模块的作答错题进行分类收集,可像练习功能一样进行答题模式和背题模式的作答方式,可移除错题,具有针对性的答题。图标速记功能,可展示各种交通图标,分类显示,可进行滑动显示,增强记忆。本程序还搭配管理后台,管理用户,可以随时更换套题,增加题目,编辑题目,删除题目,以及使用模板批量的导入题目,查看反馈意见等,非常方便实用! 效果图 [图片] [图片] [图片] [图片] [图片] [图片] [图片] 智汇答题小程序,适用于考核,评测等场景,分为四大功能:练习,答题,错题集,排名;练习功能分为答题模式和背题模式,答题模式可以在答完题目显示正确答案和帮助提示,可以进行跳题作答,背题模式可以直接查看正确答案和帮助提示,实时查看答题卡,统计答题情况,记忆功能,能够继续上次答题,也可以清除答题记录,重新答题。答题功能主要包括倒计时功能,随机取题功能,可单独对每个分类设置取题数量,答题时间,可以进行跳题作答,交卷评分,倒计时自动提示交卷;记忆功能,保存可下次继续做题。题目,帮助解释支持文字,图片。错题集功能主要是针对练习和答题两大模块的作答错题进行分类收集,可像练习功能一样进行答题模式和背题模式的作答方式,可移除错题,具有针对性的答题。排名功能可以对每套试卷的作答人员进行分数等排名;答题记录可以随时查看用户的测试记录;针对部门考核,可以开启信息审核功能,只有通过审核的人员才可进入答题。支持开启和禁用练习功能。本程序还搭配管理后台,管理用户,系统设置,后台审核用户信息,发送模板消息通知用户,可以随时增加套题,增加题目,编辑题目,删除题目,以及使用模板批量的导入题目,查看答题记录,查看反馈意见等,非常方便实用! 部署文档:https://www.jianshu.com/p/59d817c86ada 联系QQ:903363777 小程序二维码: [图片] 小程序展示图: [图片] [图片] [图片] [图片] [图片] [图片] 答题酷小程序,适用于考核,评测等场景,分为四大功能:答题,错题集,排名,答题记录;答题功能具有单项选择题和多项选择题,实时查看答题卡,倒计时功能,交卷评分,倒计时自动提示交卷;记忆功能,保存可下次继续做题。题目支持文字,图片,音频,视频。错题集会自动记录用户在答题中答错的题目,让用户可以复习,查看题目分析帮助,并且可以随时移除题目,可以翻看答题情况,跳题查看错题集题目;排名功能可以对每套试卷的作答人员进行分数等排名;答题记录可以随时查看用户的测试记录,查看分析帮助,帮助解析支持文字,图片,音频,视频。有助于查漏补缺。本程序还搭配管理后台,管理用户,系统设置,可以随时增加套题,增加题目,编辑题目,删除题目,以及使用模板批量的导入题目,非常方便实用!作者QQ:903363777 项目地址:https://github.com/kesixin/QuestionWeChatApp 效果图 [图片] [图片] [图片] [图片] [图片] 小程序二维码 [图片]
2021-09-10 - 视频号运营之公众号+小程序+流量主
在任何平台做短视频,都需要做垂直内容。让系统给你的账号打标签,然后给你推送给相应的用户群体。今天主要讲【微信视频号】在当前情况下如何0基础变现,收益最大化。 灵魂三问:你会什么?能做什么?能长期输出什么内容? 一、视频号注册 目前视频号IOS已经全面开放,Android还在内测中,不久就会全开放,没有申请的尽快去申请。 申请入口1:微信-发现-视频号 申请入口2:微信-我-设置-通用-发现页管理-开启视频号,回到入口1 视频号管理地址:https://channels.weixin.qq.com/login(还在内测) 二、视频号定位 当你准备做视频号的时候,你应该考虑一下本文的灵魂三问。视频号不是朋友圈,想发什么发什么。用户(非好友)关注你,绝对不是因为你东一句西一句瞎扯淡,80%是因为你的内容能引起用户共鸣,或者对用户有帮助。 三、视频号认证 个人认证:满1000粉丝即可去认证,如果有好友认证过还可以帮你加急。 企业认证:视频号、公众号必须同名,且公众号在认证期内,且认证微信必须是公众号管理员微信。 四、视频号内容 视频时长:时长3s~60s,核心还是短内容,一个视频说清楚一件事情。 【视频+文字】或【图片+文字】,图片最多发9张,文字描述最多1000字,视频最长60s。 目前建议类型:情感、电影电视综艺剪辑、专业知识分享、搞笑、剧情、科普、游戏。 以上均为个人建议:大部分破百万播放的播放都是这几类。 五、视频号剪辑 视频尺寸:最大尺寸为1230 x1080(px),最小为608x1080。 视频高宽比最大为11:10,小于这个比例会默认添加黑色背景填充,大于这个比例的视频会被裁掉。 专业工具:Final Cut Pro、Pr、Au、Ae等。 非专业工具:目前还是选剪映吧,上手容易一些,微信好像没有推出相关剪辑软件。 六、视频号发布 视频封面只能选择视频内封面,默认第一帧画面。图片最多发9张,文字描述最多1000字,视频最长60s。 发布时间:内容产出少的1天一次,建议在上午8-10点发布,内容产出多的建议在早晨8点、中午12点、下午6点发布。 个人建议:毕竟是短视频,长期做的话,还是以【视频】为主,不要考虑图片。 七、视频号上热门 本小节内容均为个人运营经验,非官方数据 7-1、保证视频质量(完播率),所以时长该怎么控制自己领悟。 7-2、基础点赞、评论越多越好,评论置顶一个神评+评论赞 7-3、定位本地,会默认推送一部分本地流量 热门顺序规则:完播率、点赞、评论、转发、关注。 下图非广告,实际运营数据 [图片] 八、视频号挂载公众号+小程序 [图片] 发布视频号之前,一定要准备好公众号文章+小程序内容。 举例:短视频+长视频,比如你手里有一个60秒以上的视频,公众号文章发布一个小程序跳转,然后把视频剪辑到15-60秒左右发布视频号,视频号引导用户点击链接看完整视频。 用户体验顺序为:视频号→公众号→小程序 九、视频号收益分析 按第八条用户体验顺序,则可以完成最大化收益。 公众号底部广告曝光+小程序单页面视频(或者banner、格子、原生)+小程序单页面插屏+本视频贴片广告+本视频激励广告。 这套流程大约1个用户价值1-2元左右。一个100万的播放量收益保守在【1K-1W】左右。 十、总结 视频质量一定要高!视频质量一定要高!视频质量一定要高! 用户为什么点击链接看完整视频?为什么?为什么?为什么?
2020-08-22 - 答题小程序(云开发版)
php+mysql版本 ->智汇答题Plus 智汇答题小程序,适用于考核,评测等场景,分为四大功能:练习,答题,错题集,排名; 练习功能分为答题模式和背题模式,答题模式可以在答完题目显示正确答案和帮助提示,可以进行跳题作答,背题模式可以直接查看正确答案和帮助提示,实时查看答题卡,统计答题情况,记忆功能,能够继续上次答题,也可以清除答题记录,重新答题。 答题功能主要包括倒计时功能,随机取题功能,可单独对每个分类设置取题数量,答题时间,可以进行跳题作答,交卷评分,倒计时自动提示交卷;记忆功能,保存可下次继续做题。题目,帮助解释支持文字,图片。 错题集功能主要是针对练习和答题两大模块的作答错题进行分类收集,可像练习功能一样进行答题模式和背题模式的作答方式,可移除错题,具有针对性的答题。排名功能可以对每套试卷的作答人员进行分数等排名; 答题记录可以随时查看用户的测试记录;针对部门考核,可以开启信息审核功能,只有通过审核的人员才可进入答题。支持开启和禁用练习功能。 本程序还搭配管理后台,管理用户,系统设置,后台审核用户信息,发送模板消息通知用户,可以随时增加套题,增加题目,编辑题目,删除题目,以及使用模板批量的导入题目,查看答题记录,查看反馈意见等,非常方便实用! 小程序二维码: [图片] 小程序展示图: [图片] [图片] [图片] [图片] [图片] 后台展示图: [图片]
2020-10-16 - 答题小程序(PHP版)
简介 智汇答题Plus小程序适用于考核,评测等场景,分为五大功能:练习,考试,错题,收藏,排名; 练习功能分为顺序答题和随机答题,模式分为答题模式和背题模式,答题模式可以在答完题目显示正确答案和帮助提示,可以进行跳题作答,背题模式可以直接查看正确答案和帮助提示,实时查看答题卡,统计答题情况,记忆功能,能够继续上次答题,也可以清除答题记录,重新答题。 考试功能主要包括倒计时功能,随机取题功能,可单独对每个分类设置取题数量,答题时间,可以进行跳题作答,交卷评分,倒计时自动提示交卷;记忆功能,保存可下次继续做题。 错题集功能主要是针对练习和答题两大模块的作答错题进行分类收集,可像练习功能一样进行答题模式和背题模式的作答方式,可移除错题,具有针对性的答题。 收藏功能可以针对重点题目,错误题目进行收藏,然后重新重点练习;排名功能可以对每套试卷的作答人员进行分数等排名;答题记录可以随时查看用户的测试记录;针对部门考核,可以开启信息审核功能,只有通过审核的人员才可进入答题。支持开启和禁用练习功能。 本程序还搭配管理后台,管理用户,系统设置,后台审核用户信息,发送模板消息通知用户,可以随时增加套题,增加题目,编辑题目,删除题目,以及使用模板批量的导入题目,查看答题记录,查看反馈意见等,非常方便实用!还附带说明完整的部署操作文档,以及小程序上线操作。 运行环境 PHP >=5.5.9 && PHP <=7.2 MySQL >=5.1 Apache、IIS、Nginx 注意 域名必须备案 小程序必须使用https协议 443端口 效果图 [图片] [图片] [图片] [图片] [图片] [图片] [图片] [图片] [图片] [图片] [图片] [图片]
2020-07-03 - 小程序埋点
数据统计作为⽬前⼀种常⽤的分析⽤户⾏为的⽅式,⼩程序端也是必不可少 的。⼩程序采取的曝光,点击数据埋点其实和h5原理是⼀样的。但是埋点作为⼀个和业务逻辑不相关的需求,我们如果在每⼀个点击事件,每⼀个⽣命周期加⼊各种埋点代码,则会⼲扰正常的业务逻辑,和使代码变的臃肿,提供下面方案来解决数据埋点 page = function(params) { let keys = params.keys() keys.forEach(v => { if (v === 'onLoad') { params[v] = function(options) { stat() //埋点代码 params[v].call(this, options) } } else if (v.includes('click')) { params[v] = funciton(event) { let data = event.dataset.config stat(data) // 点击埋点 param[v].call(this) } } }) } 这种思路不光适⽤于埋点,也可以⽤来作全局异常处理等场景 。
2020-06-09 - 声明:社区用户 小肥羊 盗版个人开发小程序 智汇答题Plus,以此来获取个人利益
今天有个微信好友聊天才知道,社区用户 "小肥羊" 盗版以所谓的云开发版本的小程序获取用户的关注,私下转售个人自主开发的答题小程序 智汇答题Plus,早在半年前已经发现了"小肥羊"盗版智汇答题Plus,并且已经跟他沟通商量过,但是今天发现仍然是这样无所顾忌的盗版,而"小肥羊"所谓的云开发版本也是跟智汇答题Plus有90%的相似,对于这种盗版别人源码,并且拿着别人源码来转售的行为感到鄙视,完全侵犯了版权。 [图片] [图片] [图片] [图片] [图片] [图片] [图片]
2020-05-23 - PHP单文件获取小程序二维码
[代码]<?php class RoutineCode{ /** * 获取小程序内访问页面的二维码 * @param string $path * @param int $width * @return mixed */ public static function getPages($path = '',$width = 430){ $accessToken = self::get_access_token(); $url = "https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=".$accessToken; $data['path'] = $path; $data['width'] = $width; return self::curlPost($url,json_encode($data)); } /** * 获取access_token access_token保存在文件中 * @return mixed */ public static function get_access_token(){ $data = json_decode(file_get_contents("access_token.json")); if ($data->expire_time < time()) { $res = self::getAccessToken(); $access_token = $res->access_token; if ($access_token) { $data->expire_time = time() + 7000; $data->access_token = $access_token; $fp = fopen("access_token.json", "w"); fwrite($fp, json_encode($data)); fclose($fp); } }else { $access_token = $data->access_token; } return $access_token; } /** * @param string $routineAppId * @param string $routineAppSecret * @return mixed */ public static function getAccessToken(){ $routineAppId = 'routineAppId'; $routineAppSecret = 'routineAppSecret'; $url ="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$routineAppId."&secret=".$routineAppSecret; return json_decode(self::curlGet($url),true); } /** * curl get方式 * @param string $url * @param array $options * @return mixed */ public static function curlGet($url = '', $options = array()) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 30); if (!empty($options)) { curl_setopt_array($ch, $options); } //https请求 不验证证书和host curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $data = curl_exec($ch); curl_close($ch); return $data; } /** * curl post * @param string $url * @param string $postData * @param array $options * @return mixed */ public static function curlPost($url = '', $postData = '', $options = array()) { if (is_array($postData)) { $postData = http_build_query($postData); } $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); curl_setopt($ch, CURLOPT_TIMEOUT, 30); //设置cURL允许执行的最长秒数 if (!empty($options)) { curl_setopt_array($ch, $options); } //https请求 不验证证书和host curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $data = curl_exec($ch); curl_close($ch); return $data; } } ?> [代码]
2020-02-21