当前位置: 首页 » 笔记

PHP mkdir() 创建相对路径、绝对路径及多层目录

PHP mkdir()在使用绝对路径创建多层文件夹是一直出错,相对路径时正常!mkdir("dir/dir",0777) //正常创建目录mkdir(dirname(dirname(__FILE__))."/dir/dir",0777) //创建失败试过多次,一直失败,设置递归模式,创建成功!mkdir(dirname(dirname(__FILE__))."/dir/dir",0777,true) //创建成功PHP mkdir()语法参数:mkdir(path,mode,recursive,context)path:必需。规定要创建的目录的名称。mode:可选。规定权限。默认是 0777(允许全局访问)。recursive:可选。规定是否设置递归模式。(PHP 5 中新增的)context:可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。(PHP 5 中新增的)PS:mode 参数在 Windows 平台上被忽略。笔记27天前

微信小程序单指、双指操作图片/层(移动缩放)

微信小程序单指、双指操作图片/层WXML:<view class="myCanvas"> <image src="{{ loadSrc}}" class="img" bindtouchstart="touchstartCallback" bindtouchmove="touchmoveCallback" bindload="imgload" style="width: {{ scaleWidth }}px;height: {{ scaleHeight }}px;margin-top:{{marginTop}}px;margin-left:{{marginLeft}}px;" /> </view>微信小程序单指、双指操作图片/层JS:/** * 监听图片加载成功时触发 */ imgload: function (e) { this.multiple = e.detail.width / this.width; // 计算原图和默认显示的倍数 let height = this.multiple > 1 ? e.detail.height / this.multiple : e.detail.height; // 等比例计算出默认高度 let width = this.multiple > 1 ? this.width : e.detail.width; this.setData({ baseWidth: e.detail.width, // 获取图片实际宽度 baseHeight: e.detail.height, // 获取图片实际高度 initWidth: width, initHeight: height, scaleWidth: width, scaleHeight: height, }) }, /** * 双手指触发开始 计算开始触发两个手指坐标的距离 */ touchstartCallback: function (e) { // 单手指缩放开始,不做任何处理 if (e.touches.length == 1) { lastTouchPoint = { x: 0, y: 0 } return }; let distance = this.calcDistance(e.touches[0], e.touches[1]); this.setData({ 'distance': distance, }) }, /** * 双手指移动 计算两个手指坐标和距离 */ touchmoveCallback: function (e) { // 单手指缩放不做任何操作 if (e.touches.length == 1) { if (lastTouchPoint.x == 0 && lastTouchPoint.y == 0) { lastTouchPoint.x = e.touches[0].clientX lastTouchPoint.y = e.touches[0].clientY } else { var xOffset = e.touches[0].clientX - lastTouchPoint.x var yOffset = e.touches[0].clientY - lastTouchPoint.y this.setData({ marginTop: this.data.marginTop + yOffset, marginLeft: this.data.marginLeft + xOffset, }) lastTouchPoint.x = e.touches[0].clientX lastTouchPoint.y = e.touches[0].clientY } return }; let distance = this.calcDistance(e.touches[0], e.touches[1]); // 计算移动的过程中实际移动了多少的距离 let distanceDiff = distance - this.data.distance; let newScale = this.data.scale + 0.005 * distanceDiff; // 最小缩放到0.5 if (newScale <= 0.5) { newScale = 0.5; }; let scaleWidth = newScale * this.data.initWidth; let scaleHeight = newScale * this.data.initHeight; this.setData({ distance: distance, scale: newScale, scaleWidth: scaleWidth, scaleHeight: scaleHeight, diff: distanceDiff }); }, /** * 计算两个手指距离 */ calcDistance(pos0, pos1) { let xMove = pos1.clientX - pos0.clientX; let yMove = pos1.clientY - pos0.clientY; return (Math.sqrt(xMove * xMove + yMove * yMove)); },笔记28天前

微信小程序选择照片(支持拍照)、获取图片信息、预览图片、保存图片到相册

微信小程序图片操作wxml:<button bindtap="choose">选择图片</button><button bindtap="getInfo">获取图片信息</button><button bindtap="preview">预览图片</button><button bindtap="save">保存图片到相册</button><!-- 展示上传成功的图片 --><image src="{{loadSrc}}"></image>微信小程序图片操作JS:Page({ /** * 页面的初始数据 */ data: { loadSrc:'' }, // 保存图片 save(){ var that=this; wx.saveImageToPhotosAlbum({ filePath:that.data.loadSrc, success(res){ console.log('save success!!!'); } }) }, // 预览图片 preview(){ var that=this wx.previewImage({ urls:[that.data.loadSrc], showmenu:true }) }, // getImageInfo getInfo(){ var that=this; wx.getImageInfo({ src:that.data.loadSrc, success(res){ console.log(res,'ressuccess'); } }) }, // 选择图片 choose(){ var that=this wx.chooseMedia({ success(res){ that.setData({ loadSrc:res.tempFiles[0].tempFilePath }) }, fail(res){ }, complete(res){ } }) },})笔记28天前

微信小程序canvas初始化、绘图、保存

微信小程序canvas初始化、绘图、保存,记录保存一下canvas初始化/***初始化canvas */ initCanvas(){ // 通过 wx.createSelectorQuery()方法创建 const query = wx.createSelectorQuery() query.select('#myCanvas') // canvas id .fields({ node: true, size: true }) .exec((res) => { const canvas = res[0].node const ctx = canvas.getContext('2d') const dpr = wx.getSystemInfoSync().pixelRatio // 屏幕比例 canvas.width = res[0].width * dpr canvas.height = res[0].height * dpr // 存入data 后面用到 this.setData({ ctx:ctx, canvas:canvas, cW:res[0].width * dpr, cH:res[0].height * dpr }) }) },canvas绘图/***绘制图画 */ drawImg(x,y,Hx,Hy,CW){ let that=this; const {ctx,canvas} = this.data // 创建 image对象,因为新的canvas API ,在调用drawImage的时候需要传入一个image对象。 const img = canvas.createImage() // 这个url地址,可以是微信获取头像的临时地址 img.src = this.data.loadSrc img.onload = function() { // 图片加载后画 // ctx.drawImage(img, x, y,Hx,Hy) ctx.save(); ctx.beginPath(); ctx.arc(CW/2,CW/2,CW/2,0,2*Math.PI,false) ctx.clip(); ctx.drawImage(img, x, y, Hx, Hy); // 推进去图片 ctx.closePath(); ctx.restore(); that.saveImgs(); } },canvas保存图片 /***保存图片 */saveimg:function() {        let dpr = wx.getSystemInfoSync().pixelRatio // 屏幕比例        let Hx=this.data.scaleWidth*dpr;        let Hy=this.data.scaleHeight*dpr;        let x=this.data.marginLeft*dpr;        let y=this.data.marginTop*dpr;        let cw=this.data.cW        console.log(this.data.cH)        console.log(this.data.cW)        this.drawImg(x,y,Hx,Hy,cw)       console.log(this.data.ctx);       console.log(this.data.canvas.id);    },    async saveImgs() {        let self = this;        //这里是重点  新版本的type 2d 获取方法        const query = wx.createSelectorQuery();        const canvasObj = await new Promise((resolve, reject) => {          query.select('#myCanvas')            .fields({ node: true, size: true })            .exec(async (res) => {              resolve(res[0].node);            })        });        console.log(canvasObj);        wx.canvasToTempFilePath({          //fileType: 'jpg',          //canvasId: 'posterCanvas', //之前的写法          canvas: canvasObj, //现在的写法          success: (res) => {            console.log(res);            self.setData({ canClose: true });            //保存图片            wx.saveImageToPhotosAlbum({              filePath: res.tempFilePath,              success: function (data) {                wx.showToast({                  title: '已保存到相册',                  icon: 'success',                  duration: 5000,                })                // setTimeout(() => {                //   self.setData({show: false})                // }, 6000);              },              fail: function (err) {                console.log(err);                if (err.errMsg === "saveImageToPhotosAlbum:fail auth deny") {                  console.log("当初用户拒绝,再次发起授权")                } else {                  util.showToast("请截屏保存分享");                }              },              complete(res) {                wx.hideLoading();                console.log(res);              }            })          },          fail(res) {            console.log(res);          }        }, this)      },    笔记28天前

WordPress主题选项重写优化部分代码保留短连接

重写优化了一下WordPress主题设置选项,优化焦点轮播图的设置选项(还是没有把上传写进去,感觉没必要),删除了广告选项,保留了短连接选项!设置广告,在代码中直接添加一个array数组就可以了,目前代码<?php/** *零分博客 *后台设置选项 */$shortname = "eson_"; //主题简写,必须是英文、数字、下划线组合 $options = array ('set'=>array('title'=>'综合设置','data'=>array('keyword'=>array('name'=>'keyword','title'=>'网站关键词(Meta Keywords),中间用半角逗号隔开。','num'=>1),'description'=>array('name'=>'description','title'=>'网站描述(Meta Description),针对搜索引擎设置的网页描述。','num'=>3),'statement'=>array('name'=>'statement','title'=>'网站声明及联系方式','num'=>3),'record'=>array('name'=>'record','title'=>'网站ICP备案号','num'=>1),'statistics'=>array('name'=>'statistics','title'=>'统计代码','num'=>3))),'slider'=>array('title'=>'焦点图','data'=>array('slider'=>array('title'=>'焦点图标题','pic'=>'焦点图URL','url'=>'焦点图链接'),),),'short'=>array('title'=>'短连接管理','data'=>array('short'=>array('title'=>'短连接标题','url'=>'长链接URL','shorturl'=>'短连接URL'),),),);function eson_page (){global $shortname,$options;if ( count($_POST) > 0 && isset($_POST[$shortname.'settings']) ){foreach ( $options as $opts ){foreach($opts["data"] as $ky=>$opt){delete_option ( $shortname.$ky, json_encode($_POST[$ky]) );add_option ( $shortname.$ky, json_encode($_POST[$ky]) );}}}add_theme_page(__('主题设置'), __('主题设置'), 'edit_themes', basename(__FILE__), $shortname.'settings');}function eson_settings(){global$shortname,$options;?><style type="text/css">ruby {font-size:60px;color:red;font-family:微软雅黑;}.tab {border:solid 1px;border-color:#aaa;width:960px;margin:10px auto auto 10px;text-align:left;}.hd {height:25px;width:100%;border-bottom:solid 1px;border-color:#aaa;}.hd ul {padding:0;margin:0;height:26px;overflow: hidden;}.hd .nomal {font-size:14px;height:26px;line-height:25px;display:inline-block;width:32%;text-align:center;border-right:solid 1px;border-color:#aaa;cursor:pointer;list-style:none;}.hd .activeTab {color:#2481C6;font-weight: bold;}#content {padding:20px 10px;} fieldset{width:100%;border:1px solid #aaa;padding-bottom:10px;margin-top:5px;-webkit-box-shadow:rgba(0,0,0,.2) 0px 0px 5px;-moz-box-shadow:rgba(0,0,0,.2) 0px 0px 5px;box-shadow:rgba(0,0,0,.2) 0px 0px 5px;}legend{margin-left:5px;padding:0 5px;color:#2481C6;cursor:pointer;}textarea{width:100%;font-size:11px;border:1px solid #aaa;-webkit-box-shadow:rgba(0,0,0,.2) 1px 1px 2px inset;-moz-box-shadow:rgba(0,0,0,.2) 1px 1px 2px inset;box-shadow:rgba(0,0,0,.2) 1px 1px 2px inset;-webkit-transition:all .4s ease-out;-moz-transition:all .4s ease-out;}input:focus,textarea:focus{ -webkit-box-shadow:rgba(0,0,0,.2) 0px 0px 8px; -moz-box-shadow:rgba(0,0,0,.2) 0px 0px 8px; box-shadow:rgba(0,0,0,.2) 0px 0px 8px; outline:none; }.short_input_li,.slider_input_li{position:relative;height:30px;line-height:30px;margin:10px 0;}.short_input,.slider_input{padding:10px;border:1px solid #aaa;margin:5px 0;position:relative;}.short_input_li label,.slider_input_li label{width:100px;background:#f1f1f1;position:absolute;top:0;left:0;height:30px;line-height:30px;} .short_input_li input,.slider_input_li input{height:30px;line-height:30px;margin:0 0 0 100px;width:750px;}.short_input .btn,.slider_input .btn{position:absolute;bottom:20px;right:10px;font-size:30px;line-height:30px;padding:5px;font-weight:800;color:#0085ba;cursor:pointer;}.short_input .btn i,.slider_input .btn i{margin:0 5px;}.form-table td{margin:0;padding:5px 10px;}.form-table td span{padding:5px 0;display: block;}</style><script src="<?php bloginfo('template_url');?>/images/js/jquery-3.3.1.min.js"></script><form method="post"><input type="hidden" name="eson_settings" value="save" style="display:none;" /><input type="hidden" name="activeTab" id="activeTab" value="<?php echo isset($_POST['activeTab'])?$_POST["activeTab"]:"set";?>"><div style="height:40px;line-height:40px;font-size:26px;font-weight: bold;margin: 10px auto auto 10px;">主题设置</div><div class="tab"><div class="hd"><ul><?php $i=0; foreach($options as $k=>$ops){$i++;?><li class="nomal <?php echo (isset($_POST["activeTab"]) && $_POST["activeTab"]==$k) || (!isset($_POST["activeTab"]) && $i==1) ? 'activeTab':$i;?>" data-tab="<?php echo $k;?>"><?php echo $ops["title"]?></li><?php }?></ul></div><div id="content"><?php $i=0; foreach($options as $k=>$ops){$i++;?><div id="<?php echo $k;?>" style="<?php echo (isset($_POST["activeTab"]) && $_POST["activeTab"]==$k) || (!isset($_POST["activeTab"]) && $i==1)?'display:block':'display:none';?>"><fieldset><legend><strong><?php echo $ops["title"];?></strong></legend><table class="form-table"><?php if($k=="slider" || $k=="short"){?><div class="<?php echo $k;?>" id="<?php echo $k;?>"><tr><td><div class="<?php echo $k;?>" id="<?php echo $k;?>"><?php if(!empty(json_decode(get_option($shortname.$k))) && is_array(json_decode(get_option($shortname.$k)))){?><?php $n=0; foreach(json_decode(get_option($shortname.$k)) as $data){?><div class="<?php echo $k;?>_input"><?php $m=0; foreach($ops["data"][$k] as $key=>$v){?><div class="<?php echo $k;?>_input_li"><label><?php echo $ops["data"][$k][$key];?>:</label><input type="text" name='<?php echo $k;?>[<?php echo $n;?>][<?php echo $key;?>]' value="<?php echo $key=='shorturl'?bloginfo('url').'/go/5_'.$n.'_0_'.time().'.html':$data->$key;?>"></div><?php $m++; }?><span class="btn"><?php if($n==0 ){?><i class="addpic" title="添加链接">+</i><?php }else{?><i class="delepic" title="删除链接">-</i><?php } ?></span></div><?php $n++;} ?><?php }else{ ?><div class="<?php echo $k;?>_input"><?php $m=0; foreach($ops["data"][$k] as $key=>$v){?><div class="<?php echo $k;?>_input_li"><label><?php echo $ops["data"][$k][$key];?>:</label><input type="text" name='<?php echo $k;?>[0][<?php echo $key;?>]' value=""></div><?php $m++; }?><span class="btn"><?php if($n==0 ){?><i class="addpic" title="添加链接">+</i><?php }else{?><i class="delepic" title="删除链接">-</i><?php } ?></span></div><?php }?></div></td></tr></div><?php }else{?><tr><td><?php foreach($ops['data'] as $keys=>$val){?><span><?php echo $val["title"];?></span><textarea name="<?php echo $val["name"];?>" id="<?php echo $val["name"];?>" rows="<?php echo $val["num"];?>" cols="70"><?php echo stripslashes(json_decode(get_option($shortname.$val["name"]))); ?></textarea><br /><br /><?php } ?></td></tr><?php } ?></table></fieldset></div><?php } ?></div></div><p class="submit"><input type="submit" name="submit" class="button-primary" value="保存设置" /></p></form><div id="ok" style="display:none;position:fixed;width:100px;height:20px;line-height:20px;background:#33A600;color:#fff;left:40%;top:30%;padding:10px;text-align:center;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;">保存成功</div><div id="spare-box" style="display:none;"><div class="short-box"><div class="short_input"><div class="short_input_li"><label>短连接标题:</label><input type="text" name="spare-title" value=""></div><div class="short_input_li"><label>长链接URL:</label><input type="text" name="spare-url" value=""></div><div class="short_input_li"><label>短连接URL:</label><input type="text" name="spare-shorturl" value=""></div><span class="btn"><i class="delepic" title="删除链接">-</i></span></div></div><div class="slider-box"><div class="slider_input"><div class="slider_input_li"><label>焦点图标题:</label><input type="text" name="spare-title" value=""></div><div class="slider_input_li"><label>焦点图URL:</label><input type="text" name="spare-pic" value=""></div><div class="slider_input_li"><label>焦点图链接:</label><input type="text" name="spare-url" value=""></div><span class="btn"><i class="delepic" title="删除链接">-</i></span></div></div></div><script type="text/javascript">$('.tab .hd ul li').on("click",function(){if($(this).hasClass('activeTab')) return;$('.hd ul li').removeClass('activeTab');$(this).addClass('activeTab');var tabId = $(this).attr('data-tab');$('#content > div').hide();$('#' + tabId).show();$("#activeTab").val($(this).attr('data-tab'));});$('.submit').on("click",function(){$('#ok').fadeIn().delay(1000).fadeOut(1000);})$(".addpic").click(function(){var div=$(this).parent().parent().parent();var id=div.attr("id");var i=$("#"+id+">."+id+"_input").length;var html=$("."+id+"-box").html();html=html.replace('spare-title',id+'['+i+'][title]');html=html.replace('spare-url',id+'['+i+'][url]');html=html.replace('spare-pic',id+'['+i+'][pic]');html=html.replace('spare-shorturl',id+'['+i+'][shorturl]');$("#"+id).append(html);$(".delepic").on("click",function(){$(this).parent().parent().remove();});});$(".delepic").on("click",function(){$(this).parent().parent().remove();});</script><?php }add_action('admin_menu', 'eson_page');?>只写适合自己在写主题的选项,记录共参考!笔记2个月前

layui富文本编辑器设置内容设置及取回

2021年9月,layui 官网发布公告称,layui 官网 2021 年 10 月 13 日 进行下线,届时,包括新版下载、文档和示例在内的所有框架日常维护工作,将全部迁移到 Github 和 Gitee。在Gitee上也没有找到关于layui编辑器的相关文档,百度能找到了是一些之前的文档,能找到的一个比较完整的文档:layui富文本编辑器文档别问为什么用layui富文本编辑器,只能说简洁,简单!不过后续如果需要用到编辑器,可能会放弃,文档说明等不太好找了!基本代码:<textarea id="demo" style="display: none;"></textarea><script>layui.use('layedit', function(){ var layedit = layui.layedit; layedit.build('demo'); //建立编辑器});</script>比较完整,能基本满足使用的代码<script>layui.use(['layedit','form'], function(){ var layedit = layui.layedit,form=layui.form; layedit.set({ uploadImage: { url: '图片上传接口' //接口url ,type: 'post' //默认post }});var index= layedit.build('content',{ height: 400 }); //建立编辑器 //自定义验证规则form.verify({content: function(value) {// 将富文本编辑器的值同步到之前的textarea中layedit.sync(index);}});});</script>需要自己写图片保存,好了,问题来了,用JS赋值、获取编辑器内容,需要定义全局变量!在外部定义!主要定义两个layedit和index!赋值:layedit.setContent(index,“内容”);取值:layedit.getContent(index)笔记3个月前

JQ判断层是否可见(显示隐藏)

JQ判断层是否可见(显示隐藏)var isVisible = $('#div').is(':visible');var isHidden = $('#div').is(':hidden');visible:可见,hidden:隐藏,可判断Class类设置好了display:none笔记3个月前

bat批处理修改重命名文件名

需求:将文件夹内很乱的文件名修改成001.002这种序号文件名,通过批处理bat文件批量修改百度一直都无法百度出有用的东西,不知道是现在已经很少人分享了,还是百度对于同类内容同种内容太过友好?出来的一堆东西,全部都是一样的,几乎都是“火影忍者”和“废材兄弟”,和通过Excel重命名!无奈只好自己拆解组合!最后bat代码@echo offsetlocal enabledelayedexpansionset /a v=1001for %%i in (*.jpg,*.png,*.bmp,*.gif,*.jpeg,*.txt) do (set n=!v:~-3!echo !n!ren "%%i" !n!%%~xiset /a v+=1)pause最后也算成功重命名了!运行bat文件之前运行之后,因为判断了图片文件和TXT文件,所以就只重命名了图片和txt文件首先:补0,只好先将起始位置定到1001,再移除第一位,剩下001!判断太累了!第二:获取文件夹内文件名for %%i in (*.jpg,*.png,*.bmp,*.gif,*.jpeg,*.txt) do ()in内判断文件名第三:重命名renren "%%i" !n!%%~xi%%i:是原文件名,加上引号,防止中文文件名出错,%%~xi:是原扩展名,保留原扩展名!现在搜索引擎上已经很少有直接用的东西,只能拆分小功能查找函数,组合成自己想要的东西!笔记3个月前

宝塔面板MySql经常意外停止解决方案

不知道是不是最近计划任务太多了,写入数据库太频繁,还是因为升级宝塔面板到最新版的原因,遇到过几次MySQL意外停止,虽然可以手动启动,当也不可能一直盯着,于是新建一个脚本计划任务来监测MySQL的运行状态,当遇到MySQL意外停止时,启动MySQL!shell脚本代码:pgrep -x mysqld &> /dev/nullif [ $? -ne 0 ];then/etc/init.d/mysqld start fi只是监测MySQL运行状态,计划每分钟执行,在MySQL意外停止时能及时启动!Starting MySQL. SUCCESS! 看日记,如看到这条,说明意外停止过,被成功重启!笔记3个月前

京东联盟新版API接口PHP版的坑

京东联盟新版API接口的坑,PHP版,其他版本不会!今天测试了下京东联盟的API,新版看起来和淘宝很像了,操作起来应该很容易!下载SDK,SDK已经封装了好了,就不用自己去封装拼接!看了一下,有composer.json文件,想着可能需要composer install一下,最后出错了,这一点比较喜欢拼多多的API接口,里面直接就有调用demo。composer install之后可以配置下APIKEY就可以直接访问!得,出错了就自己来,进入jd,接口和阿里妈妈的API接口结构很像合并下JdClient.php和RequestCheckUtil.php(习惯尽量将文件合并,以免有太多的include)测试下jd.union.open.promotion.common.get接口,查看下文档示例$c = new JdClient();$c->appKey = appKey;$c->appSecret = appSecret;$c->accessToken = accessToken;$c->serverUrl = SERVER_URL;$req = new UnionOpenPromotionCommonGetRequest();$promotionCodeReq= new PromotionCodeReq;$req->setPromotionCodeReq($promotionCodeReq);$req->setVersion("1.0");$resp = $c->execute($req, $c->accessToken);修改下,像token不需要,version不需要就删除!调整完是include "______Config/config.php";//apikey配置文件include "______API/JdClient.php";//请求文件include "______API/request/UnionOpenGoodsJingfenQueryRequest.php";//接口参数include "______API/request/domain/UnionOpenGoodsJingfenQuery/GoodsReq.php";//接口参数$c = new JdClient();$c->appKey = $ApiConfig["AppKey"];$c->appSecret = $ApiConfig["AppSecret"];$req = new UnionOpenGoodsJingfenQueryRequest();$goodsReq= new GoodsReq;$goodsReq->setEliteId(1);$req->setGoodsReq($goodsReq);$resp = $c->execute($req);print_r($resp);竟然出错,错误代码400参数错误! 调试接口https://api.jd.com/routerjson?access_token=&app_key=27cb4b7af2e42be76ed0a395b6584bbc&method=jd.union.open.goods.jingfen.query&v=1.0&sign=C242FFD55C46C50E172D1FA27DE93F79&360buy_param_json=%7B%22goodsReq%22%3A%7B%22eliteId%22%3A1%7D%7D×tamp=2021-09-08+14%3A17%3A06.166%2B0800urldecode后https://api.jd.com/routerjson?access_token=&app_key=27cb4b7af2e42be76ed0a395b6584bbc&method=jd.union.open.goods.jingfen.query&v=1.0&sign=C242FFD55C46C50E172D1FA27DE93F79&360buy_param_json={"goodsReq":{"eliteId":1}}&timestamp=2021-09-08 14:17:06.166+0800尝试直接接入参数,不用GoodsReq类include "______Config/config.php";//apikey配置文件include "______API/JdClient.php";//请求文件include "______API/request/UnionOpenGoodsJingfenQueryRequest.php";//接口参数$c = new JdClient();$c->appKey = $ApiConfig["AppKey"];$c->appSecret = $ApiConfig["AppSecret"];$req = new UnionOpenGoodsJingfenQueryRequest();$goodsReq= array();$goodsReq["eliteId"]=1;$req->setGoodsReq($goodsReq); //$req->setGoodsReq(json_encode($goodsReq)); 原先用json,一样出错!$resp = $c->execute($req);print_r($resp);最后终于调试成功!被官方的示例折腾了一个多小时笔记4个月前
零分站龄5个月资深站长
一个喜欢折腾,却又折腾不出像样东西的,不会PHP的PHP程序员!
323
文章
8
分类
125
标签
2
友链
onlinelovesky317355746vipsever@vip.qq.com