起首是引见一下微擎的框架,微擎是一个鉴于微疑开辟的框架,能够开辟微疑H5战微疑女伶 href="https://www.taojin168.com/cloud/" target="_blank">小法式,但是微擎微疑小法式的框架曾经很长期不革新了,用于微擎开辟的h5借怪多的,正在微擎女伶 href="https://www.taojin168.com" target="_blank">商乡中能够购置利用他人开辟佳的模块著名气鼓鼓的如女伶 href="https://www.taojin168.com" target="_blank">创利树云女伶 href="https://www.taojin168.com" target="_blank">商乡,以前公司是利用微擎框架干H5的,名目是一点儿简朴的单页里H5,一切理解一点儿微擎的利用,上面尔便去具体的道道微擎的利用
那是装置模块manifest需求留意的工具
那是装置微擎的根本目次,addons中是寄存模块目次,能够这样道,正在addons中每个文献即是一个模块,正在微擎框架平分为app端战web端,app端即是一般会见模块的链交,web呢是会见微擎背景的链交,framework目次也是比力主要的目次,需求利用的class也是正在该目次中的class目次中,
那是appons/模块上面 的一般目次,site.php战manifest.xml是必不成少的文献,site是相称于路由吧,manifest是装置模块时分的文献,假如不manifest文献微擎是没法装置该板块的,固然不装置该模块是会见没有到该模块的 inc 能够正在有site的前提下充任路由吧,好比您会见到一个模块的index办法,假如site中不界说该办法能够到inc目次下找该办法不管正在site大概inc目次下皆有分先后台区分
那是site中界说办法
inc下别离先后台的是差别目次
内里php文献称号即是差别的办法,皆要减.inc的尾缀
经由过程该url的情势会见到该模块
装置模块战会见模块便如许的能够了,上面是详细功用、
获得用户疑息
正在用户不存眷公家号的状况下,不克不及利用$_W['fans']的数据,那是存眷公家号的用户才有那数据,那末用户不存眷公家号,但是又需求用户数据怎样办呢
mc_oauth_userinfo(); //加入h5受权 获得用户疑息 以后正在获得$_W['fans']便会有效户疑息,需求留意的是,加入h5先判定有无用户疑息不正在受权获得用户疑息,假如是存眷了的用户没有需求受权也是能够获得到用户疑息的,假如没有干判定能够用户体会较好
天生url
$this->creatrMobileUrl('index'); //前台地点 index办法
路由的前台地点
$this->createWebUrl('confs'); //背景地点 confs办法
路由的背景地点
正在望图中如需求收收ajax恳求的时分url能够这样写
{php echo $this->creatrMobileUrl('index')}模板挪用
{template '途径/模板称号'} //引进模板 绝对途径
{template 'co妹妹on/模板称号'} //那是挪用大众模板 倡议利用大众模板正在这呢
微擎望图中利用功用
微擎自戴考证码 https://blog.csdn.net/sunxiaowen13/article/details/79539797(verify());
$verify -> imgcode();//考证码 checkcaptcha($code) //考证
//考证码 前端显现,PHP文献中考证只要要 checkcaptcha($code) 前往值 bool
解:用法是零丁供给一个路由办法给考证码,而后正在前端页里中获得该路由的办法显现考证码,后端利用checkcaptcha($code) 考证
固态文献目次 相称于页里上面addons/模块名/resource/
define("S_URL", "/addons/{$_GET['m']}/resource/"); //正在site中界说
模板中输入变质
{$name} //输入变质
轮回
{loop 数组 $row}
//单个数据为$row
{/loop}
判定
{if 前提}
//true
{else}
//false
{/if}
写php代码
{php $变质=$变质+1;} //混编php
<a href=&#34;{php echo $this->createMobileUrl(&#39;页里&#39;);}&#34;></a> //真例php混编
单文献上传
{php echo tpl_form_field_image(&#39;name值&#39;);} //单文献上传
数据库
删编削查
留意 pdo_insert/pdo_delete/ pdo_update/pdo_get/pdo_getall办法表名没有需求后面的 ims_
tablename() 那个办法是减表前缀的(需求的减没有需求的没有减)
pdo_insert(&#39;表名&#39;, 数据数组, $replace=false[能否交换]) //删 第三个参数 不便增加 有便交换
pdo_delete(&#39;表名&#39;, 前提数组, $glue=&#39;AND/OR&#39;) //增 第三个参数 前提前提 取 或者
pdo_update(&#39;表名&#39; ,数据数组, 前提数组, $glue=&#39;AND/OR&#39;) //改 第三个参数 前提前提 取 或者
pdo_get(&#39;表名&#39; ,前提数组 ,字段数组); //查一条
pdo_getall(&#39;表名&#39;, 前提数组 , 字段数组,) //查多条
pdo_fetchcolumn(&#34;select count(*) from &#34;.表名.&#34; where iswin = :iswin &#34;,array(&#39;iswin&#39;=>1));
//盘问满意前提的个数
pdo_query(&#39;sql&#39;) //施行一条非盘问语句
pdo_query(&#34;DELETE FROM&#34;.tablename(&#39;表名&#39;).&#34;WHERE 前提字段=:站位符&#34;,array(&#39;:后面的站位符&#39;=>2))
数据分页
$list = pdo_fetchall(&#39;SELECT * FROM &#39; . tablename(&#39;hbyh_qrj_gift&#39;) . &#39; LIMIT &#39; . (页数 - 1) * 每一页几条 . &#39;, &#39; . 每一页几条); //分页数据
正在模板中轮回遍历数据 {$page} 显现如今页数
链式盘问
脚册 ::http://s.w7.cc/index.php?c=wiki&do=view&id=1&list=452
盘问用户表中的前十条男性的用户数据
真例:
$query = load()->object(&#39;query&#39;);
$row = $query->from(&#39;表名&#39;)->where(&#39;前提&#39;, &#39;1&#39;)->orderby(&#39;字段&#39;, &#39;desc顺叙&#39;)->limit(10 条数)->getall();
右联系关系的表
真例:
$query = load()->object(&#39;query&#39;);
$row = $query->from(&#39;users&#39;, &#39;u&#39;)->leftjoin(&#39;users_profile&#39;, &#39;b&#39;)->on(&#39;u.id&#39;, &#39;b.uid&#39;)->where(&#39;u.id&#39;, &#39;525&#39;)->get();
//去自 users 右链交 users u.id=b.uid 前提是u.id=525 的一笔记录
链表盘问
留意 本死的sql 操纵需求减表的前缀
pdo_fetchall(&#39;SELECT * FROM &#39; . tablename($this->table_activity) . &#39; as i inner join &#39;. tablename($this->table_actclass) .&#39; as c on i.class_id = c.id WHERE i.id=:id&#39;, array(&#39;:id&#39;=> $id));
//盘问去自 表i 内乱毗连 表c on联系关系前提 i的class_id=c的id 前提(i的id=占位符)
pdo_fetch($sql) //依据 SQL语句,盘问一笔记录
pdo_fetchall($sql); // 盘问局部记载
微擎函数
大众函数
TIMESTAMP 常质目前工夫戳 (秒)
istripslashes($var) //来除字符串大概数组中的本义符 (\)
字符串/数组
ihtmlspecialchars ($var) //本义字符串或者数组中的的HTML,比方将 “php” 转移为 &quot;PHP&quot;
字符串/数组
isetcookie($key, $value, $expire = 0, $httponly = false) //cookie 操纵
cookie称号 cookie值 过来 工夫 能否许可Javascript读与避免xss进犯 倡议登录等疑息启开此项
token() //提接表单时的滥觞校验码 取 checksubmit() 函数设置利用,提接表单时的滥觞校验码
//<input name=&#34;token&#34; type=&#34;hidden&#34; value=&#34;{$_W[&#39;token&#39;]}&#34; /> 取 token() 一致
checksubmit($var = &#39;submit&#39;, $allowget = false) // 考证一下表单提接,表单中必需戴有token
提接表单按钮的称号 能否 考证一个get恳求
random($length, $numeric = FALSE) //获得一个随机数
要获得随机数的少度 能否 是杂数字随机数
checkcaptcha($code) //考证用户提接的考证码能否准确
用户挖写的考证码
tablename($tablename) //微擎一切数据表均有前缀,此函数即是前往减表前缀的表名
数据表名
array_elements($keys, $src) //从一个数组中获得多少元艳
需求 挑选的键名列表(数组) 停止挑选的数组
range_limit($num, $downline, $upline, $returnNear = true) //判定给定参数能否位于区间内乱或者将参数变换为区间内乱的数
检测的数 区间的最小值 区间的最年夜值 为true时小于区间则前往最小值,年夜于区间则前往最年夜值,不然前往自己的值
ijson_encode($value, $options = 0) //变换json格局
需求 转移的字符串/数组 此值为 JSON_UNESCAPED_UNICODE 时,则没有本义华文
iserializer($str) //序列化格局
需求 序列化的字符串或者数组
is_serialized($str, $strict = TRUE) //判定能否序列化
需求 检测的数据 能否为严厉形式
iunserializer($str) //反序列化格局
需求 反序列化的字符串或者数组
is_base64($str) //判定能否为base64减稀的字符串
需求 检测的数据
tomedia($src) //转移地点?
需求 停止变换的途径 mages/noavatar_middle.gif
referer($default = &#39;&#39;) //获得援用页的地点
默许 援用页地点
strexists($string, $find) //判定字符串能否包罗字串
字符串 需求查找的字符串
cutstr($string, $length, $havedot = false, $charset = &#39;&#39;) //截与字符串
字符串 截与的少度 超少字符串末端能否减简略号 指定编码
istrlen($string, $charset = &#39;&#39;) //疏忽字符编码获得字符串的个数,华文英文皆为1个字符
字符串 指定编码
authcode($string, $operation = &#39;DECODE&#39;, $key = &#39;&#39;, $expiry = 0) //字符串减稀或者解稀
字符串 操纵DECODE或者ENCODE 秘钥 过时工夫
isimplexml_load_string($string, $class_name = &#39;SimpleXMLElement&#39;, $options = 0, $ns = &#39;&#39;, $is_prefix = false) //将一个 xml 字符串转移为 xml 工具
xml字符串 &#39;impleXMLElement&#39; LIBXML_NOCDATA
parse_path($path) //过滤途径中能够包罗的不法字符,倡议经由过程get或者是post通报的途径皆用此函数过滤
途径 http 函数
http函数利用时 load()->func(&#39;co妹妹unication&#39;)援用
ihttp_request($url, $post = &#39;&#39;, $extra = array(), $timeout = 60) //模仿http恳求
要获得实质的url 数据(数组) 恳求 附带值 超不时间 //概况瞅脚册
ihttp_get($url) //GET恳求 办法
要获得实质的URL,必需因此http或者是https开首
ihttp_post($url, $data) //POST恳求 办法
要获得实质的url 数据(数组)
ihttp_email($to, $subject, $body, $global = false) //收收邮件 Email
支件人邮箱 邮件中心 邮件实质数组格局 能否利用体系邮箱设置疑息 //详细脚册操纵文献函数
操纵文献时分 援用 load()->func(&#39;file&#39;)
file_is_image($url) //检测能否为图象文献
途径
//自尔觉得 文献操纵函数没有是很经常使用
//需求的话间接瞅 http://s.w7.cc/index.php?c=wiki&do=view&id=1&list=249
全部变质
微擎有 两个全部变质 $_W $ _GPC
$_GPC
全部恳求变质, 获得 $GET, $POST, $_COOKIES 中的变质
$_W
$_W 中 是体系中最为主要的全部变质,微擎体系中许多经常使用的数据皆保存正在那个变质当中
那边记载一点儿经常使用的 $_W 里的用法
$_W[‘timestamp’] //目前时辰的工夫戳
$_W[‘clientip’] //目前客户端ip
$_W[‘siteroot’] //网站的跟途径
$_W[‘isajax’] //是不是ajax恳求
$_W[‘ispost’] //是不是post恳求
$_W[‘ishttps’] //是不是https和谈Web 端看来
$_W[‘uid’] //目前登录的操纵用户 uid
$_W[‘username’] //目前操纵用户称号
$_W[‘user’] //目前操纵用户疑息App 端看来
$_W[‘member’] //目前粉丝用户疑息
$_W[‘member’][‘uid’] //目前粉丝用户 uid
$_W[‘openid’] //目前粉丝用户标记
$_W[‘fans’] //目前粉丝用户疑息 但是正在利用$_W[&#39;fans&#39;]时,不存眷的用户是没法获得到$_W[&#39;fans&#39;]里的疑息的慢存体制
cache_write(string $key, mixed $data) //根据指定的键名保存慢存数据
参数指定要保存慢存数据的键名,键名必需包管是独一 数据的实质,能够为字符串,数组等
cache_load(string $key) //读与指定键名慢存数据
键名
cache_delete(string $key) //简略指定键名的慢存数据
键名
cache_clean() //肃清一切慢存
文献减载器
load()->func(string $string) //减载体系大众函数
// framework/function/logging.func.php load()->func(&#39;logging&#39;);
load()->classs(string $string) //减载体系大众类 能够本人启拆class
// framework/class/account.class.php load()->classs(&#39;account&#39;);
连接微疑的sdk
文档中需求 一点儿庞大的数据 如 appid 甚么的,
微擎启拆的
$account_api=WeAccount::create();
$jssdk=$account_api->getJssdkConfig(); //如许$jssdk中便有了咱们需求 链交jssdk的一切数据
include $this->tempalte(&#39;index&#39;) //模板中能够间接利用
微擎的语消息息呼应
正在微擎中设置 非枢纽字呼应
触收模块
触收模块后site共级文献中,processor.php 文献,如
class Viva_csModuleProcessor extends WeModuleProcessor { //Viva_cs是模块
public function respond() {
$content = $this->message; //疑息数据 (数组)
//$json=json_encode($content,JSON_UNESCAPED_UNICODE);
return $this->respText($content[&#39;recognition&#39;]); //必需要如许呼应
//那里界说此模块停止动静处置时的详细历程, 请检察微擎文档去编辑您的代码
}
}
微擎启拆自界说分享
正在那个大众模板处所创立那个文献 上面是html的实质
<script src=&#34;//res.wx.qq.com/open/js/jweixin-1.4.0.js&#34;></script><script>jssdkconfig = {php echo json_encode($_W[&#39;account&#39;][&#39;jssdkconfig&#39;]);} || {}; jssdkconfig.debug = 0; jssdkconfig.jsApiList = [&#39;checkJsApi&#39;,&#39;onMenuShareTimeline&#39;,&#39;onMenuShareAppMessage&#39;,&#39;onMenuShareQQ&#39;,&#39;onMenuShareWeibo&#39;,&#39;hideMenuItems&#39;,&#39;showMenuItems&#39;,&#39;hideAllNonBaseMenuItem&#39;,&#39;showAllNonBaseMenuItem&#39;,&#39;translateVoice&#39;,&#39;startRecord&#39;,&#39;stopRecord&#39;,&#39;onRecordEnd&#39;,&#39;playVoice&#39;,&#39;pauseVoice&#39;,&#39;stopVoice&#39;,&#39;uploadVoice&#39;,&#39;downloadVoice&#39;,&#39;chooseImage&#39;,&#39;previewImage&#39;,&#39;uploadImage&#39;,&#39;downloadImage&#39;,&#39;getNetworkType&#39;,&#39;openLocation&#39;,&#39;getLocation&#39;,&#39;hideOptionMenu&#39;,&#39;showOptionMenu&#39;,&#39;closeWindow&#39;,&#39;scanQRCode&#39;,&#39;chooseWXPay&#39;,&#39;openProductSpecificView&#39;,&#39;addCard&#39;,&#39;chooseCard&#39;,&#39;openCard&#39;,&#39;updateAppMessageShareData&#39;,&#39;updateTimelineShareData&#39;];wx.config(jssdkconfig);
wx.ready(function(){wx.hideMenuItems({menuList:[&#39;menuItem:copyUrl&#39;,&#39;menuItem:openWithQQBrowser&#39;,&#39;menuItem:openWithSafari&#39;,&#39;menuItem:share:email&#39;]});});</script>
那个是望图中利用自界说分享的时分 援用那个模板后,可使用微疑sdk中的办法
上面是实质
{template &#34;co妹妹on/wxsdknew&#34;}
<script>
wx.ready(function() { //启拆了微疑wxsdk能够挪用微疑办法
window.wxshare = {
title: &#34;您佳e贷温心祸利去袭——放心宅野,新颖中转!&#34;,
link: &#34;{$_W[&#39;siteurl&#39;]}&#34;,
desc: &#39;超多欣喜等您去&#39;,
imgUrl: &#39;https://file.cdn.finance.vivatech.cn/191213helloe_dai/images/index/icon.jpg&#39;,
success: function () {}
};
wx.onMenuShareTimeline(wxshare);
wx.onMenuShareAppMessage(wxshare);
wx.updateAppMessageShareData(wxshare);
wx.updateTimelineShareData(wxshare);
}); |