#134

    作者:广西南宁市
    tp报错: SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is
    SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'appointment.ob_order.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

    去掉 sql_mode 配置项参数中逗号后面的空格
    打开mysql配置文件,在[mysqld]下添加如下一行:sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,保存重启
    Run code
    Cut to clipboard
      展开↯

      #135

      作者:广西南宁市
      UniApp vue 分享图片 合成画布 图片合并 小程序 二维码 推广海报
      <template> <view> <canvas v-if="!canvas_src" style="width: 375px; height: 605px;margin-top:-1000px;position: absolute;top:-1000px;z-index: -1;" canvas-id="myCanvas" id="myCanvas"></canvas> <view class="tkxj_0"></view> <view class="tkxj_1" v-if="canvas_src"> <u-image :src="canvas_src" mode="heightFix" height="70vh" style="display:inline-block;"></u-image> <view class="ggbb_1" @click="close();">X</view> <view class="ggbb_2" @click="save_img();">保存图片</view> </view> </view> </template> <script> export default { name: 'add-img', props: { data_l:{ type:Object, default:()=>{} }, acv_index: { type: Number, default: 0 }, bgColor: { type: String, default: '#efefef' }, // 宽度,单位任意 width: { type: [String, Number], default: '100%' }, add_img_src: { type: Boolean, default: false }, // 是否懒加载,微信小程序、App、百度小程序、字节跳动小程序 lazyLoad: { type: Boolean, default: true }, // 背景颜色,用于深色页面加载图片时,为了和背景色融合 // close: { // type: Function, // default: ()=>{} // }, bgColor: { type: String, default: '#f3f4f6' }, getConfig:{ type:Object, default:()=>{} }, goods_info:{ type:Object, default:()=>{} } }, data() { return { backgroundStyle: {}, // getConfig: {}, num:1, canvas_src:'', qrcode:'' // v_show_d:this.v_show }; }, watch: { }, computed: { }, onShow() { // this.$nextTick(() => { // console.log(2132131) // this.nGetConfig(this) // }) }, mounted: function () { let res2 = wx.getSystemInfoSync(); this.xw_whith = 375;//res2.windowWidth; this.xw_height = 603;//res2.windowHeight; // console.log(res2); // console.log(2132131) // this.nGetConfig(this,(res)=>{ // //getConfig 子子孙传值不过来 临时解决办法 // // console.log(res) // this.getConfig=res; // this.drawShareImg(); // }) // console.log(this.acv_index) this._shop_details_qrcode(); // this.drawShareImg(); }, methods: { //生成二维码 _shop_details_qrcode(){ this.nAjax({ url: "index/_shop_details_qrcode", // clogin: true, showLoading: true, // showLoadingTitle: "正在发送", // 'header':{ // 'content-type':'application/x-www-form-urlencoded', // 'test':123 // }, // 'method':'GET', data: { tuid: this.getConfig._fx.txt.uid, tshopid: this.goods_info.id, }, successShow: { show: false, type: "toast", // 'icon':'success', duration: 1500, // type: "modal", // title: "提示", // showCancel: false, // // 'cancelText':'取消', // // 'confirmText':'确定', // confirm: () => { // console.log("用户点击确定"); // }, // 'cancel':()=>{ // console.log('用户点击取消'); // }, }, errorShow: { show: true, // 'type':'toast', // 'icon':'error', // 'duration':3500, type: "modal", title: "", showCancel: false, // 'cancelText':'取消', confirmText: "知道了", confirm: () => { // console.log("用户点击确定"); }, // 'cancel':()=>{ // console.log('用户点击取消'); // }, }, success: (res) => { this.qrcode=res.data.qrcode; this.drawShareImg(); }, // fail:()=>{ // }, // complete:()=>{ // } }); }, _getImageInfo(src,callback){ uni.getImageInfo({ 'src':src, 'success':res=>{ callback(res) } }); }, // 合成分享图核心代码 drawShareImg() { uni.showLoading({ title: '加载中' }); let img_arr=[ { 'src':this.goods_info.cover_img, //商品封面 '_x':this.getConfig._fx.position.dt._x, '_y':this.getConfig._fx.position.dt._y, }, { 'src':this.getConfig['all']['list2']['15'], //底图 '_x':this.getConfig._fx.dt._x, '_y':this.getConfig._fx.dt._y, }, { 'src':this.getConfig._fx.txt.avatarUrl || this.getConfig['all']['list2']['16'], //头像 '_x':this.getConfig._fx.position.tx._x, '_y':this.getConfig._fx.position.tx._y, }, { 'src':this.qrcode, //二维码 'http://jgy.com/'+ '_x':this.getConfig._fx.position.ewm._x, '_y':this.getConfig._fx.position.ewm._y, } // this.getConfig._fx.ewm ]; // console.log(img_arr) let img_arr_new=[]; this._getImageInfo(img_arr[0].src,res=>{ //封面 // let width=this.xw_whith; // let height=res.height*width/res.width; let height=this.xw_height-160; let width=res.width*height/res.height; if(width>this.xw_whith){ img_arr[0]._x=0-(width-this.xw_whith)/2; } res.width=width res.height=height res._x=img_arr[0]._x; res._y=img_arr[0]._y; img_arr_new.push(res); this._getImageInfo(img_arr[1].src,res=>{ //底图 let width=this.xw_whith; let height=this.xw_height; //this.xw_whith*res.width/this.xw_height res.width=width res.height=height img_arr_new.push(res) this._getImageInfo(img_arr[2].src,res=>{ //头像 res._x=img_arr[2]._x; res.height=res.height*60/res.width; res.width=60; res._y=this.xw_height-img_arr[2]._y-res.height; img_arr_new.push(res) this._getImageInfo(img_arr[3].src,res=>{ //二维码 // let width=this.xw_whith; // let height=res.height*width/res.width; let height=100; let width=100; res.width=width res.height=height res._x=this.xw_whith-img_arr[3]._x-res.width; res._y=this.xw_height-img_arr[3]._y-res.height; img_arr_new.push(res) this.drawShareImg0(img_arr_new); }) }) }) }) }, /* * 参数说明 * ctx Canvas实例 * img 图片地址 * x x轴坐标 * y y轴坐标 * w 宽度 * h 高度 * r 弧度大小 */ circleImg(ctx, img, x, y, r=13, w=50, h=50) { ctx.save(); // 画一个图形 if (w < 2 * r) r = w / 2; if (h < 2 * r) r = h / 2; ctx.beginPath(); ctx.moveTo(x + r, y); ctx.arcTo(x + w, y, x + w, y + h, r); ctx.arcTo(x + w, y + h, x, y + h, r); ctx.arcTo(x, y + h, x, y, r); ctx.arcTo(x, y, x + w, y, r); ctx.closePath(); ctx.strokeStyle = '#FFFFFF'; // 设置绘制圆形边框的颜色 ctx.stroke(); ctx.clip(); ctx.drawImage(img, x, y, w, h); ctx.restore(); }, /* * 圆角图片=>参数说明 * ctx Canvas实例 * img 图片地址 * x x轴坐标 * y y轴坐标 * r 圆形半径 */ circleImg2(ctx, img, x, y, r) { ctx.save(); let d = 2 * r; let cx = x + r; let cy = y + r; ctx.arc(cx, cy, r, 0, 2 * Math.PI); ctx.clip(); ctx.drawImage(img, x, y, d, d); ctx.restore(); }, drawShareImg0(img_arr_new) { // let that=this; //用户名 let uname=this.getConfig._fx.txt.uname; let txt1=this.getConfig._fx.txt.txt1; let txt2=this.getConfig._fx.txt.txt2; let shop_title=this.goods_info.title; let price='¥'+this.goods_info.price; let price2='¥'+this.goods_info.market_price; if(!this.goods_info.market_price || this.goods_info.market_price<0.01) price2=''; let ww, hh; const ctx = uni.createCanvasContext('myCanvas',this) ww = this.xw_whith; //准确的宽高 hh = this.xw_height; // ctx.drawImage("https://img.jinguiyuan.cn/FkZdT5PqHitcbcVzGhstB8jasKXQ", 0, 0, ww, hh) // ctx.drawImage("https://img.jinguiyuan.cn/FkZdT5PqHitcbcVzGhstB8jasKXQ", 30, hh - 87, 50, 50) //封面 ctx.drawImage(img_arr_new[0].path, img_arr_new[0]._x, img_arr_new[0]._y,img_arr_new[0].width,img_arr_new[0].height); //底图 ctx.drawImage(img_arr_new[1].path, img_arr_new[1]._x, img_arr_new[1]._y,img_arr_new[1].width,img_arr_new[1].height); //头像 this.circleImg(ctx,img_arr_new[2].path, img_arr_new[2]._x, img_arr_new[2]._y); //二维码 ctx.drawImage(img_arr_new[3].path, img_arr_new[3]._x, img_arr_new[3]._y,img_arr_new[3].width,img_arr_new[3].height); // img_arr_new.forEach((v,i)=>{ // if(2==i){ // this.circleImg(ctx,v.path, v._x, v._y,30) // }else ctx.drawImage(v.path, v._x, v._y,v.width,v.height); // }) ctx.setFontSize(16) ctx.setFillStyle('#000') ctx.fillText(uname, 100, hh - 105) ctx.setFontSize(14) ctx.setFillStyle('#999') let u_w=120+ctx.measureText(uname).width; //100+uname.length*17+8 ctx.fillText(txt1, u_w, hh - 105) //商品标题 // console.log(333) // console.log(ctx.measureText(shop_title.substring(0,15)).width) let si=0; let s_shop_title=shop_title; for(let i=0;i<=shop_title.length;i++){ // console.log(ctx.measureText(shop_title.substring(0,i)).width) let ss_t=shop_title.substring(0,i)+'...'; if(!si && ctx.measureText(ss_t).width>178) { si=i; s_shop_title=ss_t; } } ctx.setFontSize(18) ctx.setFillStyle('#000') ctx.fillText(s_shop_title, 18, hh - 55) //会员价 文字 ctx.setFontSize(14) ctx.setFillStyle('#000') ctx.fillText(txt2, 20, hh - 25) //会员价 ctx.setFontSize(18) ctx.setFillStyle('#b12704') ctx.fillText(price, 65, hh - 25) //市场价 if(price2){ ctx.setFontSize(16) ctx.setFillStyle('#9fa1a0') let p_w=82+ctx.measureText(price).width; ctx.fillText(price2, p_w, hh - 25) //删除线 ctx.beginPath(); const textWidth = ctx.measureText(price2).width; ctx.rect(p_w, hh - 31, textWidth+3, 1); ctx.fillStyle = '#9fa1a0'; ctx.fill(); } //开始绘画 ctx.draw() //这里需要做个延迟防止绘制没结束生成图片黑的问题 setTimeout(() => { uni.canvasToTempFilePath({ canvasId: 'myCanvas', success: (res)=> { // 在H5平台下,tempFilePath 为 base64 // console.log(res.tempFilePath) this.canvas_src=res.tempFilePath; uni.hideLoading(); } },this) }, 1000); }, close(){ // console.log(this.v_show); this.$emit("close"); // this.blurInput(,); }, save_img(){ uni.authorize({ scope: 'scope.writePhotosAlbum', success:()=> { //保存图片 uni.saveImageToPhotosAlbum({ filePath:this.canvas_src, success:(res)=> { this.close(); uni.showToast({ title: '保存成功', duration: 2000 }); uni.vibrateLong(); } }) }, fail:()=>{ uni.showModal({ title: '提示', confirmText:'去设置', content: '请授权相册', success: (res)=> { if (res.confirm) { uni.openSetting(); // console.log('用户点击确定'); } else if (res.cancel) { // console.log('用户点击取消'); } } }); return; //只有用户主动操作下的直接回调才会生效。非用户操作或间接回调都不会拉起setting页面 uni.showToast({ title: '请授权相册', duration: 2000 }); setTimeout(()=>{ uni.openSetting(); },1500) // console.log(12312) } }) } }, }; </script> <style scoped> .tkxj_0{ position: fixed; left: 0px; top: 0px; width: 100vw; height: 100vh; z-index: 99998; background: #000; opacity: 0.7; } .tkxj_1{ position: fixed; top: 140rpx; left: 0px; width: 100vw; z-index: 99999; padding-bottom: 100px; text-align: center; } .ggbb_1{ position: absolute; color: #fff; left: 36rpx; top: -45px; border: 1px solid #fff; font-size: 16px; width: 30px; height: 30px; line-height: 28px; border-radius: 50%; } .ggbb_2{ color: #fff; font-size: 18px; border: 1px solid #fff; height: 36px; line-height: 36px; border-radius: 12px; display: inline-block; padding: 0px 15px; position: absolute; bottom: 30rpx; left: 50%; margin-left: -52px; width: 104px; } </style>
      Run code
      Cut to clipboard
        #,广西南宁市,2022-09-13,10:46:38, Canvas 绘制圆形图片、绘制圆角矩形图片

        制作圆形和圆角矩形并不是一个方法,但大同小异

        圆形使用的是:arc()
        圆角使用的是:arcTo()

        圆形:利用 Canvas 先画出一个圆形,然后将图片定位到圆形中心位置进行剪切,将超出圆形的部分去掉,就会形成一个圆形

        圆角:利用 Canvas 先画出一个圆角矩形,然后将图片定位到圆角矩形位置进行剪切,将超出圆形的部分去掉,就会形成一个圆角矩形
        区别在于,圆角需要我们一段一段的自己画出来,而圆形有现成的方法只用设置想要的值即可

        // 开始制作头像 createPlacard() { uni.getImageInfo({ src: '...7/02/e0eb38388da1c.jpg', // 网络图片需先下载,得到临时本地路径,否则绘入 Canvas 可能会出现空白 success: (img)=> { const ctx = wx.createCanvasContext('myCanvas', this); ctx.fillStyle = "#FFFFFF"; ctx.fillRect(0, 0, uni.upx2px(750), uni.upx2px(1000)); // 如何在 Canvas 中绘入圆形图片? // 原理:利用 Canvas 先画出一个圆形,然后将图片定位到圆形中心位置进行剪切,将超出圆形的部分去掉,就会形成一个圆形 this.circleImgOne(ctx, img.path, uni.upx2px(175), uni.upx2px(95), uni.upx2px(200)); // 如何在 Canvas 中绘入圆角矩形? // 原理:利用 Canvas 先画出一个圆角矩形,然后将图片定位到圆角矩形位置进行剪切,将超出圆形的部分去掉,就会形成一个圆角矩形 //this.circleImgTwo(ctx, img.path, uni.upx2px(105), uni.upx2px(95), uni.upx2px(512), uni.upx2px(382), uni.upx2px(20)); ctx.draw(); uni.hideLoading() } }) }
        Run code
        Cut to clipboard


          /* * 参数说明 * ctx Canvas实例 * img 图片地址 * x x轴坐标 * y y轴坐标 * r 圆形半径 */ circleImgOne(ctx, img, x, y, r) { // 如果在绘制图片之后还有需要绘制别的元素,需启动 save() 、restore() 方法,否则 clip() 方法会导致之后元素都不可见 // save():保存当前 Canvas 画布状态 // restore():恢复到保存时的状态 /* ctx.save(); */ let d = r * 2; let cx = x + r; let cy = y + r; ctx.arc(cx, cy, r, 0, 2 * Math.PI); ctx.strokeStyle = '#FFFFFF'; // 设置绘制圆形边框的颜色 ctx.stroke(); // 绘制出圆形,默认为黑色,可通过 ctx.strokeStyle = '#FFFFFF', 设置想要的颜色 ctx.clip(); ctx.drawImage(img, x, y, d, d); /* ctx.restore(); */ },
          Run code
          Cut to clipboard



            /* * 参数说明 * ctx Canvas实例 * img 图片地址 * x x轴坐标 * y y轴坐标 * w 宽度 * h 高度 * r 弧度大小 */ circleImgTwo(ctx, img, x, y, w, h, r) { // 画一个图形 if (w < 2 * r) r = w / 2; if (h < 2 * r) r = h / 2; ctx.beginPath(); ctx.moveTo(x + r, y); ctx.arcTo(x + w, y, x + w, y + h, r); ctx.arcTo(x + w, y + h, x, y + h, r); ctx.arcTo(x, y + h, x, y, r); ctx.arcTo(x, y, x + w, y, r); ctx.closePath(); ctx.strokeStyle = '#FFFFFF'; // 设置绘制圆形边框的颜色 ctx.stroke(); ctx.clip(); ctx.drawImage(img, x, y, w, h); }
            Run code
            Cut to clipboard


              #,广西南宁市,2022-09-13,10:55:45, canvas文字超过宽自动换行
              drawText(ctx, txtwid, t, x, y, w){ var chr = t.split(""); var temp = ""; var row = []; ctx.font = "20px Arial"; ctx.fillStyle = "black"; ctx.textBaseline = "middle"; for(var a = 0; a < chr.length; a++){ if( ctx.measureText(temp).width < w ){ ; } else{ row.push(temp); temp = ""; } temp += chr[a]; } row.push(temp); for(var b = 0; b < row.length; b++){ ctx.setFontSize(txtwid); ctx.setFillStyle("#333333"); ctx.fillText(row[b],x,y+(b+1)*20); } },
              Run code
              Cut to clipboard
                #,广西南宁市,2022-09-13,21:03:48, 小程序自定义组件中使用canvas不生效
                canvas组件注册无效,这个因为createCanvasContext方法是有两个参数,
                在page页面默认传了一个this,在组件里面需要手动传this。
                const ctx = wx.createCanvasContext('myCanvas',this);
                Run code
                Cut to clipboard
                  文章:uni-app:iPhone的底部安全区域  发表时间:2022-09-13, 10:24:28  
                  展开↯

                  #136

                  作者:广西南宁市
                  解决cURL error 60: SSL certificate problem: unable to get local issuer certifica
                  报错:cURL error 60: SSL certificate problem: unable to get local issuer certifica

                  报错原因:因为没有配置信任的服务器HTTPS验证。默认情况下,cURL被设为不信任任何CAs,因此浏览器无法通过HTTPs访问你服务器。
                  解决方式
                  下载证书


                  修改php.ini文件,去掉前面“;” 路径带上""


                  openssl这个扩展开启


                  文章:easywechat学习笔记  发表时间:2022-09-13, 10:33:55  
                  展开↯

                  #137

                  作者:广西南宁市
                  vue deep样式穿透使用
                  在vue2中使用 ::v-deep
                  ::v-deep .el-col { margin-bottom: 20px; }
                  Run code
                  Cut to clipboard

                    ’ >>> ‘和’ /deep/ '支持已弃用。

                    在vue3中::v-deep可以使用但是不推荐使用,官方推荐v-deep(.className)
                    ::v-deep(.el-col) { margin-bottom: 20px; } // 缩写 :deep(.el-col) { margin-bottom: 20px; }
                    Run code
                    Cut to clipboard


                      全局样式设置 ::v-global(.ClassName) 缩写 :global(.ClassName) 插槽内的样式设置 ::v-slotted(.ClassName) 缩写 :slotted(.ClassName)
                      Run code
                      Cut to clipboard

                        文章:uni-app:iPhone的底部安全区域  发表时间:2022-09-13, 10:27:04  
                        展开↯

                        #138

                        作者:广西南宁市
                        animate
                        #,广西南宁市,2022-08-01,23:00:23,
                        实现滚动条滚过一段距离后才调用animate.css
                        配合wow.js使用,只有当屏幕滚动到添加animate动画区域的时候,动画效果才出现。
                        WOW.js在页面滚动时展现动感的元素动画效果
                        #,广西南宁市,2022-09-13,10:15:36, Flex布局在线调试工具
                        #,广西南宁市,2022-09-13,10:20:26, iconfont-阿里巴巴矢量图标库
                        文章:程序员编程常用网页工具集[游戏]  发表时间:2022-08-01, 02:01:49  
                        展开↯

                        #139

                        作者:广西南宁市
                        Thinkphp6 查询结果按in集合顺序显示
                        use think\Db; $in = ['张三', '李四', '王五']; $order= 'field(name, '.$in.')'; return User::whereIn('name',$in)->order(Db::raw($order))->select();
                        Run code
                        Cut to clipboard
                          文章:tp从数据库中随机查n条数据  发表时间:2022-09-13, 10:18:34  
                          展开↯

                          #140

                          作者:广西南宁市
                          进入manifest文件,进入源码,找到app-plus部分
                          "safearea": { "background":"#CCCCCC", // 安全区域外的背景颜色,默认值为"#FFFFFF" "bottom":{ // 底部安全区域配置 "offset":"none|auto" // 底部安全区域偏移,"none"表示不空出安全区域,"auto"自动计算空出安全区域,默认值为"none" }, "left": { // 左侧安全区域配置(横屏显示时有效) "offset":"none|auto" }, "right: { // 右侧安全区域配置(横屏显示时有效) "offset":"none|auto" } } iPhoneX的安全区域配置。
                          Run code
                          Cut to clipboard
                            文章:uni-app:iPhone的底部安全区域  发表时间:2022-09-13, 10:09:51  
                            展开↯

                            #141

                            作者:广西南宁市
                            PHP中让json_encode不自动转义斜杠“/”的方法

                            最近将使用爬虫爬取的链接保存到 mysql 数据库中时,发现我将链接使用 json_encode 保存时候,在数据库中却显示了转义字符,我并不需要这转义的,看起来不清晰而且占用存储空间。

                            后来发现在默认的情况之下使用 json_encode 对数组进行 json 格式的转换时候会自动的将数据中含有斜杠的字符串进行转义,但是我们往往有的时候不需要药对它们进行转义的,本文说说如何使用 json_encode 不自动转义斜杠。

                            对于如下数组 $a,现有两种办法解决:

                            $a = array(
                            'http://www.baidu.com',
                            'http://www.baidu.com',
                            'http://www.baidu.com',
                            'http://www.baidu.com',
                            'http://www.baidu.com'
                            );
                            其一,正则替换: $a = str_replace("\/", "/", json_encode($a)); var_dump($a); 其二,若 php 版本是 5.4 及以上的话: var_dump(json_encode($a,JSON_UNESCAPED_SLASHES));
                            Run code
                            Cut to clipboard
                              #,广西南宁市,2022-09-07,14:34:05, php json_encode斜杠
                              小程序内容审核api踩坑笔记 敏感词过滤PHP开发调用msgSecCheck,违规内容也返回无问题
                              $data = json_encode(array('content'=>$checkContent),JSON_UNESCAPED_UNICODE)

                              genwxashortlink坑
                              shortlink.generate 返回40066,参数检查后是对的
                              把 /pages/detail/index 替换成 pages/detail/index,文档的示例有问题,我们改过来。
                              #,广西南宁市,2022-09-07,14:34:29, invalid url rid: 631809ad-0a08d4f7-008095fe
                              文章:php curl 发送post请求带参数  发表时间:2022-09-07, 14:30:56  
                              展开↯

                              #142

                              作者:广西南宁市
                              php curl 设置请求头headers和请求体body
                              $url = "http://www.example.com"; //headers数组内的格式 $headers = array(); $headers[] = "app-id:xxxxx"; $headers[] = "Content-Type:application/json"; $body = array( "username" => "username", "password" => "password" ); $postBody = json_encode($body); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);//设置请求头 curl_setopt($curl, CURLOPT_POSTFIELDS, $postBody);//设置请求体 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');//使用一个自定义的请求信息来代替"GET"或"HEAD"做为HTTP请求。(这个加不加没啥影响) $data = curl_exec($curl); echo $data;
                              Run code
                              Cut to clipboard
                                #,广西南宁市,2022-09-07,14:30:05,
                                public static function getUserInfo(){ $url = 'http://*****'; $arr = ["111", "222", "333", "444"]; $userIds =json_encode($arr); $res = self::http($url,$userIds,'GET',['Content-Type:application/json']); } public static function http($url, $postfields = '', $method = 'GET', $headers =[]) { $ci = curl_init(); curl_setopt($ci, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ci, CURLOPT_TIMEOUT, 5); curl_setopt($ci, CURLOPT_HTTPHEADER, $headers); curl_setopt($ci, CURLOPT_URL, $url); if ($method == 'POST') { curl_setopt($ci, CURLOPT_POST, true); if ($postfields != '') curl_setopt($ci, CURLOPT_POSTFIELDS, $postfields); }else{ curl_setopt($ci, CURLOPT_CUSTOMREQUEST, 'GET' ); curl_setopt($ci, CURLOPT_POSTFIELDS, $postfields); } $response = curl_exec($ci); curl_close($ci); $json_r = array(); if ($response != '') $json_r = json_decode($response, true); return $json_r; }
                                Run code
                                Cut to clipboard
                                  文章:php curl 发送post请求带参数  发表时间:2022-09-07, 14:29:34  
                                  展开↯

                                  #143

                                  作者:广西南宁市
                                  php获取页面输出内容,PHP CURL获取页面内容输出例子
                                  使用PHP curl获取页面内容或提交数据,有时候希望返回的内容作为变量储存,而不是直接输出。这个时候就必需设置curl的CURLOPT_RETURNTRANSFER选项为1或true。

                                  1、curl获取页面内容, 直接输出例子:

                                  $url = 'https://www.cnblogs.com/xwyphp/';

                                  $ch = curl_init();

                                  curl_setopt($ch, CURLOPT_URL, $url);

                                  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

                                  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

                                  curl_exec($ch);

                                  curl_close($ch);

                                  ?>

                                  2、curl获取页面内容, 不直接输出例子:

                                  $url = 'https://www.cnblogs.com/xwyphp/';

                                  $ch = curl_init();

                                  curl_setopt($ch, CURLOPT_URL, $url);

                                  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

                                  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

                                  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

                                  $response = curl_exec($ch); // 已经获取到内容,没有输出到页面上。

                                  curl_close($ch);

                                  echo $response;

                                  ?>

                                  PHP curl获取页面内容,不直接输出到页面,CURLOPT_RETURNTRANSFER参数设置

                                  使用PHP curl获取页面内容或提交数据,有时候希望返回的内容作为变量储存,而不是直接输出.这个时候就必需设置curl的或true. 1.curl获取页面内容, 直接输出例子: <?php $ ...

                                  C#获取页面内容的几种方式

                                  常见的Web页面获取页面内容用 WebRequest 或者 HttpWebRequest 来操作 Http 请求. 例如,获取百度网站的 html 页面 var request = WebReques ...

                                  python+selenium 页面中存在选项卡时,获取页面内容的小技巧

                                  最近用selenium读取页面内容时,遇到包含选项卡的页面,由于选项卡多由js加载其中的内容,所以在网址打开时只能获取到默认显示的选项卡中的内容,而tab2.tab3等等都需要傻傻的点击一下才会获取到 ...

                                  POST信息模拟登录获取页面内容

                                  最近项目里有一个是要模拟登录后,访问固定页面获取内容的要求,一开始用JQ AJAX好像不支持跨域请求.后使用.net中HttpWebRequest对象来获取.一开始访问总是无法在第二个页面正常访问,好 ...

                                  最简单的代码,CURL获取页面

                                  function getHTML($url){ $ch = curl_init(); //1.初始化curl curl_setopt($ch,CURLOPT_URL, $url); //2.curl配 ...

                                  python 携带cookie获取页面内容

                                  有时会遇到爬取的页面需要登录,这就要带上cookie了. 下面记录了几种携带cookie的方法 # coding=utf-8 import requests s = requests.Session( ...

                                  php利用simple_html_dom类,获取页面内容,充当爬虫角色

                                  PHP脚本扮演爬虫的角色,可能大家第一时间想到可能会是会正则,个人对正则的规则老是记不住,表示比较难下手,今天工作中有个需求需要爬取某个网站上的一些门店信息 无意间在网上看到一个比较好的类库叫:sim ...

                                  WinForm开发浏览器,WebBrowser获取页面内容,如何解决中文乱码

                                  WebBrowser的编码可以从文档对象中获得,将代码改为如下即可. System.IO.StreamReader getReader = new System.IO.StreamReader(thi ...

                                  JAVA通过url获取页面内容

                                  String address = "http://sports.sina.com.cn/nba/live.html?id=2015050405"; URL url = new UR ...

                                  随机推荐

                                  ActionMapping

                                  在Struts中,ActionServlet只是任务的分派者,它依请求分配任务给其它的对象来执行,而分配的依据是请求的URI以及struts-config.xml的

                                  sqlserver索引小结

                                  1.1 什么是索引? SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间 下面举两个简单的例子: 图书馆的例子:一个图书 ...

                                  centos7 firewalld

                                  1.firewalld简介 firewalld是centos7的一大特性,最大的好处有两个: 1.支持动态更新,不用重启服务: 2.加入了防火墙的"zone"概念 firewa ...

                                  logstash中的redis插件

                                  redis作为logstash中的官方broker,既有input插件,还有output插件. redis input插件 data_type属性: 有三种类型, list -> BLPOP - ...

                                  linux 定时任务计划

                                  crond: unrecognized service 无crond解决办法 安装计划任务:yum -y install vixie-cron

                                  Mongodb 启动时 lock文件访问没有权限处理

                                  mongodb 第二次启动时候异常信息: lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance ...

                                  try...catch...finally中try块发生的事件顺序

                                  1.try块在发生异常的地方中断程序的执行.2.如果有catch块,就检查该块是否匹配已抛出的异常类型.如果没有catch块,就执行finally块(如果没有catch块,就一定要有finally块) ...

                                  Android: Receiving Data from the Send Intent,自己app注册系统分享

                                  当用户在系统的专辑,点击共享时.通过我们自己的app.分享此图片. 1.注册 主要是在AndroidManifest.xml中,对activity注冊Intent-filter.如:

                                  [Cqoi2010]扑克牌

                                  Description 你有n种牌,第i种牌的数目为ci.另外有一种特殊的 牌:joker,它的数目是m.你可以用每种牌各一张来组成一套牌,也可以用一张joker和除了某一种牌以外的其他牌各一张组成1 ...

                                  这样入门asp.net core 之 静态文件

                                  本文章主要说明asp.net core中静态资源处理方案: 一.静态文件服务 首先明确contentRoot和webroot这两个概念 contentRoot:web的项目文件夹,其中包含webroo ...
                                  #,广西南宁市,2022-09-02,23:13:22, php 替换curl内容,php curl抓取页面内容搜索拦截替换指定内容再输出
                                  CURLOPT_RETURNTRANSFER

                                  使用PHP curl获取页面内容或提交数据,有时候希望返回的内容作为变量储存,而不是直接输出。这个时候就必需设置curl的CURLOPT_RETURNTRANSFER选项为1或true。

                                  1、curl获取页面内容, 直接输出例子:

                                  $url = 'http://baidu.com';

                                  $ch = curl_init();

                                  curl_setopt($ch, CURLOPT_URL, $url);

                                  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

                                  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

                                  curl_exec($ch);

                                  curl_close($ch);

                                  ?>

                                  2、curl获取页面内容, 不直接输出例子:

                                  $url = 'http://baidu.com';

                                  $ch = curl_init();

                                  curl_setopt($ch, CURLOPT_URL, $url);

                                  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

                                  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

                                  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

                                  $response = curl_exec($ch); // 已经获取到内容,没有输出到页面上。

                                  curl_close($ch);

                                  echo $response;

                                  ?>

                                  str_replace

                                  拦截替换页面内容的方法:

                                  把字符串 "Hello world!" 中的字符 "world" 替换为 "Shanghai":

                                  echo str_replace("world","Shanghai","Hello world!");

                                  ?>

                                  PHP str_replace方法,替换字符串定义和用法

                                  str_replace() 函数替换字符串中的一些字符(区分大小写)。

                                  结合演示<?php

                                  $curlobj = curl_init(); // 初始化

                                  curl_setopt($curlobj, CURLOPT_URL, "http://www.baidu.com"); // 设置访问网页的URL

                                  curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, true); // 执行之后不直接打印出来

                                  $output = curl_exec($curlobj); // 执行

                                  curl_close($curlobj); // 关闭cURL

                                  echo str_replace("百度", "php", $output);

                                  ?>
                                  #,广西南宁市,2022-09-02,23:13:48, HTML <base> 标签
                                  <head> <base href="http://www.runoob.com/images/" target="_blank"> </head> <body> <img src="logo.png" width="24" height="39" alt="Stickman"> <a href="http://www.runoob.com">runoob.com</a> </body>
                                  Run code
                                  Cut to clipboard
                                    文章:uniapp生成骨架屏  发表时间:2022-09-02, 23:12:47  
                                    展开↯

                                    #144

                                    作者:广西南宁市
                                    Go语言截取指定字符串中间字符串的方法
                                    import "strings" func GetBetweenStr(str, start, end string) string { n := strings.Index(str, start) if n == -1 { n = 0 } str = string([]byte(str)[n:]) m := strings.Index(str, end) if m == -1 { m = len(str) } str = string([]byte(str)[:m]) return str }
                                    Run code
                                    Cut to clipboard
                                      文章:Golang取中间字符串  发表时间:2022-09-02, 23:04:42  
                                      展开↯

                                      #145

                                      作者:广西-南宁-西乡
                                      利润10%成本除以0.9
                                      20%成本除以0.8
                                      30%成本除以0.7
                                      40%成本除以0.6
                                      #,广西南宁市,2022-09-01,17:48:55,
                                      文章:站时系扣,坐时解扣-西装礼仪  发表时间:2021-09-29, 11:30:31  
                                      展开↯

                                      #146

                                      作者:广西南宁市青秀区
                                      汉字为什么是3个字节

                                      字符集之在UTF-8中,一个汉字为什么需要三个字节?

                                      (一)在UTF-8中,一个汉字为什么需要三个字节?
                                      UNICODE是万能编码,包含了所有符号的编码,它规定了所有符号在计算机底层的二进制的表示顺序。有关Unicode为什么会出现就不叙述了,Unicode是针对所有计算机的使用者定义一套统一的编码规范,这样计算机使用者就避免了编码转换的问题。Unicode定义了所有符号的二进制形式,也就是符号如何在计算机内部存储的,而且每个符号规定都必须使用两个字节来表示,也就是用16位二进制去代表一个符号,这样就导致了一个问题,英文编码的空间浪费,因为在ANSI中的符号都是一个字节来表示的,而使用了UNICODE编码就白白浪费了一个字节。也就代表着Unicode需要使用两倍的空间去存储相应的ANSI编码下的符号。虽然现在硬盘或者内存都很廉价,但是在网络传输中,这个问题就凸显出来了,你可以这样想想,本来1M的带宽在ANSI下可以代表1024*1024个字符,但是在Unicode下却只能代表1024*1024/2个字符。也就是1MB/s的带宽只能等价于512KB/s,这个很可怕啊。所以为了解决符号在网络中传输的浪费问题,就出现了UTF-8编码,Unicode transfer format -8 ,后面的8代表是以8位二进制为单位来传输符号的,但是这样又导致了一个问题,虽然UTF-8可以使用一个字节来表示ANSI下的符号,但是对于其它类似汉语的符号,得需要两个字节来表示,所以计算机不知道如何去截取一个符号,也就是一个符号对应的二进制的截取开始位置和截取结束位置。所以为了解决Unicode下的ANSI符号的空间浪费和网络传输下如何截取字符的问题,UTF规定:如果一个符号只占一个字节,那么这个8位字节的第一位就为0。如果为两个字节,那么规定第一个字节的前两位都为1,然后第一个字节的第三位为0,第二个字节的前两位为10,然后如果是三个字节的话,那么第一个字节的前三位为111,第四位为0,剩余的两个字节的前两位都为10。按照这样的算法去思考一个中文字符的UTF-8是怎么表示的:一个中文字符需要两个字节来表示,两个字节一共是16位,那么UTF-8下,两个字节是不够的,因为两个字节下,第一个字节已经占据了三位:110,然后剩余的一个字节占据了两位:10,现在就只剩下8位,与Unicode下的两个字节,16位去表示任意一个字符是相悖的,也就是Unicode下的16位减去UTF-8下的8位=8位,刚好差了一个字节的空间,所以就使用三个字节去表示非ANSI字符:三个字节下,一共是24位,第一个字节头四位是:1110,后两个字节的前两位都是:10,那么24位-8位=16位,刚好两个字节去表示Unicode下的任意一个非ANSI字符。这也就是为什么UTF-8需要使用三个字节去表示一个非ANSI字符的原因了!
                                      多个字节提供的位数超过了所需要的,多余的位以0补全到编码前面

                                      (二)英文字母和中文汉字在不同字符集编码下的字节数

                                      英文字母:
                                      字节数 : 1;编码:GB2312
                                      字节数 : 1;编码:GBK
                                      字节数 : 1;编码:GB18030
                                      字节数 : 1;编码:ISO-8859-1
                                      字节数 : 1;编码:UTF-8
                                      字节数 : 4;编码:UTF-16
                                      字节数 : 2;编码:UTF-16BE
                                      字节数 : 2;编码:UTF-16LE

                                      中文汉字:
                                      字节数 : 2;编码:GB2312
                                      字节数 : 2;编码:GBK
                                      字节数 : 2;编码:GB18030
                                      字节数 : 1;编码:ISO-8859-1
                                      字节数 : 3;编码:UTF-8
                                      字节数 : 4;编码:UTF-16
                                      字节数 : 2;编码:UTF-16BE
                                      字节数 : 2;编码:UTF-16LE

                                      这是个好问题,可以当作一个笔试题。先从字符编码讲起。

                                      1、美国人首先对其英文字符进行了编码,也就是最早的ascii码,用一个字节的低7位来表示英文的128个字符,高1位统一为0;
                                      2、后来欧洲人发现尼玛你这128位哪够用,比如我高贵的法国人字母上面的还有注音符,这个怎么区分,得,把高1位编进来吧,这样欧洲普遍使用一个全字节进行编码,最多可表示256位。欧美人就是喜欢直来直去,字符少,编码用得位数少;
                                      3、但是即使位数少,不同国家地区用不同的字符编码,虽然0--127表示的符号是一样的,但是128--255这一段的解释完全乱套了,即使2进制完全一样,表示的字符完全不一样,比如135在法语,希伯来语,俄语编码中完全是不同的符号;

                                      4、更麻烦的是,尼玛这电脑高科技传到中国后,中国人发现我们有10万多个汉字,你们欧美这256字塞牙缝都不够。于是就发明了GB2312这些汉字编码,典型的用2个字节来表示绝大部分的常用汉字,最多可以表示65536个汉字字符,这样就不难理解有些汉字你在新华字典里查得到,但是电脑上如果不处理一下你是显示不出来的了吧。
                                      5、这下各用各的字符集编码,这世界咋统一?俄国人发封email给中国人,两边字符集编码不同,尼玛显示都是乱码啊。为了统一,于是就发明了unicode,将世界上所有的符号都纳入其中,每一个符号都给予一个独一无二的编码,现在unicode可以容纳100多万个符号,每个符号的编码都不一样,这下可统一了,所有语言都可以互通,一个网页页面里可以同时显示各国文字。
                                      6、然而,unicode虽然统一了全世界字符的二进制编码,但没有规定如何存储啊,亲。x86和amd体系结构的电脑小端序和大端序都分不清,别提计算机如何识别到底是unicode还是acsii了。如果Unicode统一规定,每个符号用三个或四个字节表示,那么每个英文字母前都必然有二到三个字节是0,文本文件的大小会因此大出二三倍,这对于存储来说是极大的浪费。这样导致一个后果:出现了Unicode的多种存储方式。

                                      7、互联网的兴起,网页上要显示各种字符,必须统一啊,亲。utf-8就是Unicode最重要的实现方式之一。另外还有utf-16、utf-32等。UTF-8不是固定字长编码的,而是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。这是种比较巧妙的设计,如果一个字节的第一位是0,则这个字节单独就是一个字符;如果第一位是1,则连续有多少个1,就表示当前字符占用多少个字节。
                                      8、注意unicode的字符编码和utf-8的存储编码表示是不同的,例如"严"字的Unicode码是4E25,UTF-8编码是E4B8A5,这个7里面解释了的,UTF-8编码不仅考虑了编码,还考虑了存储,E4B8A5是在存储识别编码的基础上塞进了4E25。

                                        4E25的二进制位 0100,1110,0010,0101 中文汉字在utf-8中到底占几个字节,一般是3个字节(原因见第一章),最常见的编码方式是1110xxxx 10xxxxxx 10xxxxxx。组合起来为 1110,0100,1011,1000,1010,0101 =E4B8A5

                                      9、UTF-8 使用一至四个字节为每个字符编码。128 个 ASCII 字符(Unicode 范围由 U+0000 至 U+007F)只需一个字节,带有变音符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文及马尔代夫语(Unicode 范围由 U+0080 至 U+07FF)需要二个字节,其他基本多文种平面(BMP)中的字符(CJK属于此类-Qieqie注)使用三个字节,其他 Unicode 辅助平面的字符使用四字节编码。
                                      10、最后,要回答你的问题,常规来看,中文汉字在utf-8中到底占几个字节,一般是3个字节,最常见的编码方式是1110xxxx 10xxxxxx 10xxxxxx。
                                      #,广西南宁市青秀区,2022-08-23,22:17:43, 编码查看转换工具
                                      #,广西南宁市青秀区,2022-08-23,22:21:13, 《计算机组成原理与汇编语言》
                                      文章:Go判断包含字符串  发表时间:2022-08-23, 22:17:02  
                                      展开↯

                                      #147

                                      作者:广西
                                      文章:电脑常用软件收藏推荐收集【持续更新】  发表时间:2022-08-18, 17:49:09  
                                      展开↯

                                      #148

                                      作者:广西南宁市
                                      机械键盘的红、黑、青、 茶四种轴区别如下:

                                      1.黑轴,黑轴是一种线性手感的机械轴,线性手感就是直上直下的手感,举个例子,用手指将弹簧按下去,然后弹簧通过弹性势能回弹,同时回馈给手指力道,之就是线性手感。黑轴是最硬的机械轴,同时给予用户的回报就是快速回弹,也就意味着单键连续操作速度快。黑轴适合正常强度玩游戏,少打字的用户。

                                      2.红轴,红轴就是轻量级黑轴。线性手感。红轴适合高速打字员、职业游戏玩家等相对专业性较强的用户。因为专业用户平时需要大量的练习来提高职业技能,同时也要求高速的反应。唯有红轴能满足这样的需求。

                                      3.茶轴,非线性手感,有段落感。段落感就是按下键时微弱卡顿的感觉。茶轴是机械轴中的万金油,适合绝大多数的用户。可打字,可游戏。
                                      4.青轴,将老式打字机的手感引入茶轴中,青轴有明确的段落感以及清脆的点击声,是四种轴中最好玩的轴,使用快感最强,也适合大多数用户。

                                      今天试了试四种轴,我自己的感觉是
                                      茶轴最好,有轻微的段落感,声音清脆一些。
                                      青轴最不舒服,手指感觉很累。所谓的段落感,就是一种按压老式开关的声音和感觉。声音很响。
                                      黑轴感觉按键回弹力量比较大,所以手指按压时受到的阻力较大,感觉也不是很舒服。声音沉闷一些。
                                      红轴的声音最轻,阻力最小。红轴的感觉是不是在敲打键盘。
                                      文章:ios h5播放视频不了  发表时间:2022-08-16, 17:39:20  
                                      展开↯

                                      #149

                                      作者:广西南宁市
                                      微信网页分享给朋友updateTimelineShareData自定义分享出去都是url

                                      微信改了外链规则,如果你是点聊天界面的url进去分享出来的是 URL ,如果你是扫描二维码或别人分享进去分享就是 你设置的分享内容。
                                      总结:必须是二维码或分享进去设置的分享内容才有效。

                                      注意:
                                      1、目前还可以从公众号菜单进入分享、访问网页后添加到收藏,从我的收藏进入分享正常。
                                      2、其他入口应该分享都是链接了。
                                      #,广西南宁市,2022-08-16,14:24:32, 这是正常的,微信在上次开放全域名后改的。目前还可以从公众号菜单进入分享、访问网页后添加到收藏,从我的收藏进入分享正常。其他入口应该分享都是链接了。
                                      #,广西南宁市,2022-08-16,14:28:15, 1,在公众号菜单中的链接打开,才能正常分享卡片;2,可以通过收藏链接,再打开分享也是卡片;3,把链接换成二维码,扫码后进入分享也是卡片。所有的前提是你配置必须OK!如果是用微信直接打开链接分享会是链接。
                                      #,广西南宁市,2022-08-16,14:29:48, 我发现还有一个情况,打开聊天框 随便引用一条聊天记录,发送链接,再点进去分享也是卡片
                                      文章:微信网页授权snsapi_base,snsapi_userinfo  发表时间:2022-08-16, 14:24:13  
                                      展开↯

                                      #150

                                      作者:广西南宁市
                                      //今天开始 $beginToday = date('Y-m-d 00:00:00', time()); //今天结束 $endToday = date('Y-m-d 23:59:59', time()); //昨天开始 $beginYesterday = date('Y-m-d 00:00:00', strtotime(' -1 day')); //昨天结束 $endYesterday = date('Y-m-d 23:59:59', strtotime(' -1 day')); //本周开始,周一开始 $beginThisWeek = date('Y-m-d 00:00:00', strtotime('this week monday')); //本周结束,周日结束 $endThisWeek = date('Y-m-d 23:59:59', strtotime('this week sunday')); //上周开始,周一开始 $beginLastWeek = date('Y-m-d 00:00:00', strtotime('last week monday')); //上周结束,周日结束 $endLastWeek = date('Y-m-d 23:59:59', strtotime('last week sunday')); //本月开始 $beginThisMonth = date('Y-m-01 00:00:00'); //本月结束 $endThisMonth = date('Y-m-d 23:59:59', strtotime('Last day of this month')); //上月开始 $beginLastMonth = date('Y-m-01 00:00:00', strtotime('last month')); //上月结束 $endLastMonth = date('Y-m-d 23:59:59', strtotime('Last day of last month')); //本季度开始 $beginThisSeason = date('Y-m-01 00:00:00', strtotime((1 - (date('n') % 3 == 0 ? 3 : date('n') % 3)) . ' month')); //本季度结束 $endThisSeason = date('Y-m-d 23:59:59', strtotime('last day of' . (3 - (date('n') % 3 == 0 ? 3 : date('n') % 3)) . ' month')); //上季度开始 $beginLastSeason = date('Y-m-01 00:00:00', strtotime((-2 - (date('n') % 3 == 0 ? 3 : date('n') % 3)) . ' month')); //上季度结束 $endLastSeason = date('Y-m-d 23:59:59', strtotime('last day of' . (- (date('n') % 3 == 0 ? 3 : date('n') % 3)) . ' month')); //本年度开始 $beginThisYear = date('Y-01-01 00:00:00'); //本年度结束 $endThisYear = date('Y-12-31 23:59:59'); //上年度开始 $beginLastYear = date('Y-01-01 00:00:00', strtotime('last year')); //上年度结束 $endLastYear = date('Y-12-31 23:59:59', strtotime('last year'));
                                      Run code
                                      Cut to clipboard
                                        展开↯

                                        #151

                                        作者:广西南宁市
                                        //php获取今日开始时间戳和结束时间戳 $beginToday=mktime(0,0,0,date('m'),date('d'),date('Y')); $endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1; //php获取昨日起始时间戳和结束时间戳 $beginYesterday=mktime(0,0,0,date('m'),date('d')-1,date('Y')); $endYesterday=mktime(0,0,0,date('m'),date('d'),date('Y'))-1; //php获取上周起始时间戳和结束时间戳 $beginLastweek=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y')); $endLastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y')); //php获取本月起始时间戳和结束时间戳 $beginThismonth=mktime(0,0,0,date('m'),1,date('Y')); $endThismonth=mktime(23,59,59,date('m'),date('t'),date('Y'));
                                        Run code
                                        Cut to clipboard
                                          展开↯

                                          #152

                                          作者:广西南宁市
                                          <?php //今天 $today = date("Y-m-d"); //昨天 $yesterday = date("Y-m-d", strtotime(date("Y-m-d"))-86400); //上周 $lastweek_start = date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1-7,date("Y"))); $lastweek_end = date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7-7,date("Y"))); //本周 $thisweek_start = date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1,date("Y"))); $thisweek_end = date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y"))); //上月 $lastmonth_start = date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m")-1,1,date("Y"))); $lastmonth_end = date("Y-m-d H:i:s",mktime(23,59,59,date("m") ,0,date("Y"))); //本月 $thismonth_start = date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),1,date("Y"))); $thismonth_end = date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("t"),date("Y"))); //本季度未最后一月天数 $getMonthDays = date("t",mktime(0, 0 , 0,date('n')+(date('n')-1)%3,1,date("Y"))); //本季度/ $thisquarter_start = date('Y-m-d H:i:s', mktime(0, 0, 0,date('n')-(date('n')-1)%3,1,date('Y'))); $thisquarter_end = date('Y-m-d H:i:s', mktime(23,59,59,date('n')+(date('n')-1)%3,$getMonthDays,date('Y'))); ?>
                                          Run code
                                          Cut to clipboard
                                            展开↯
                                            你好,残忍屏蔽广告

                                            确定要清除编辑框内容吗?

                                            该删除操作将不可恢复。

                                            删除 取消

                                            激活Windows

                                            转到"设置"以激活Windows。