首页
关于
归档
朋友
壁纸
留言
API平台
告白墙
更多
休闲游戏
留言板
练字贴
Layui手册
Search
1
【PHP】PHPoffice/PHPSpreadsheet读取和写入Excel
1,019 阅读
2
【Git】No tracked branch configured for branch master or the branch doesn't exist.
748 阅读
3
【composer】composer常用命令
490 阅读
4
【Layui】控制页面元素展示隐藏
442 阅读
5
【MySQL】MySQL触发器应用场景和使用方法
422 阅读
默认分类
PHP
ThinkPHP
Laravel
面向对象
设计模式
算法
基础
网络安全
Web
HTML
CSS
JavaScript
jQuery
Layui
VUE
uni-app
Database
MySQL
Redis
RabbitMQ
Nginx
Git
Linux
Soft Ware
Windows
网赚
Go
登录
Search
标签搜索
PHP
函数
方法
类
MySQL
ThinkPHP
OOP
JavaScript
Layui
Web
Linux
Array
设计模式
Git
PHPSpreadsheet
PHPoffice
排序算法
面试题
Windows
基础
小破孩
累计撰写
212
篇文章
累计收到
16
条评论
首页
栏目
默认分类
PHP
ThinkPHP
Laravel
面向对象
设计模式
算法
基础
网络安全
Web
HTML
CSS
JavaScript
jQuery
Layui
VUE
uni-app
Database
MySQL
Redis
RabbitMQ
Nginx
Git
Linux
Soft Ware
Windows
网赚
Go
页面
关于
归档
朋友
壁纸
留言
API平台
告白墙
休闲游戏
留言板
练字贴
Layui手册
搜索到
29
篇与
的结果
2024-06-23
【PHP】H5微信网页自定义分享功能实现
<?php namespace app\index\lib\wechat; header("Access-Control-Allow-Origin:*"); class share { public $appid; public $secret; // 步骤1.appid和secret //header("Access-Control-Allow-Origin:*"); //$appid = "appid"; //$secret = "secret"; public function __construct($appid,$secret) { $this->appid = $appid; $this->secret = $secret; } // 步骤2.生成签名的随机串 public function nonceStr($length){ $str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJK1NGJBQRSTUVWXYZ';//随即串,62个字符 $strlen = 62; while($length > $strlen){ $str .= $str; $strlen += 62; } $str = str_shuffle($str); return substr($str,0,$length); } // 步骤3.获取access_token public function http_get($url){ $oCurl = curl_init(); if(stripos($url,"https://")!==FALSE){ curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1 } curl_setopt($oCurl, CURLOPT_URL, $url); curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1 ); $sContent = curl_exec($oCurl); $aStatus = curl_getinfo($oCurl); curl_close($oCurl); if(intval($aStatus["http_code"])==200){ return $sContent; }else{ return false; } } // 步骤4.获取ticket public function getTicket(){ $result = $this->http_get('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$this->appid.'&secret='.$this->secret); $json = json_decode($result,true); $access_token = $json['access_token']; $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=$access_token"; $res = json_decode ( $this->http_get ( $url ) ); return $res->ticket; } // 步骤5.生成wx.config需要的参数 //$surl = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; //$ws = getWxConfig( $ticket,$surl,time(),nonceStr(16) ); // public function getWxConfig($jsapiTicket,$url,$timestamp,$nonceStr) { public function getWxConfig() { $jsapiTicket=$this->getTicket(); $url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $timestamp = time(); $nonceStr = $this->nonceStr(rand(8,15)); $string = "jsapi_ticket=".$jsapiTicket."&noncestr=".$nonceStr."×tamp=".$timestamp."&url=".$url; $signature = sha1 ($string); $WxConfig["appId"] = $this->appid; $WxConfig["nonceStr"] = $nonceStr; $WxConfig["timestamp"] = $timestamp; $WxConfig["url"] = $url; $WxConfig["signature"] = $signature; $WxConfig["rawString"] = $string; return $WxConfig; } } public function getWxShareConfig(){ $instanceWxShare = new \app\index\lib\wechat\share('appid','secret'); return $instanceWxShare->getWxConfig(); } <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> <script> // console.log(timestamp); wx.config({ debug: false, appId: '{$wxsc.appId}', timestamp: '{$wxsc.timestamp}', nonceStr: '{$wxsc.nonceStr}', signature: '{$wxsc.signature}', jsApiList: ['updateAppMessageShareData','updateTimelineShareData'] }); wx.ready(function () { //需在用户可能点击分享按钮前就先调用 wx.updateAppMessageShareData({ title: '医博:', // 分享标题 desc: '专业肛肠、胃肠、中医交流平台,为业界名专家们搭建教学、学术平台,为专业医生提供手术直播、科普交流基地,为学者提供学习、沟通、上升平台。', // 分享描述 link: 'https://wx.kmyebo.com', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: 'https://wx.kmyebo.com/yb_share_icon.jpg', // 分享图标 success: function () { // 设置成功 } }) }); wx.ready(function () { //需在用户可能点击分享按钮前就先调用 wx.updateTimelineShareData({ title: '医博:', // 分享标题 link: 'https://wx.kmyebo.com', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: 'https://wx.kmyebo.com', // 分享图标 success: function () { // 设置成功 } }) }); </script>http://www.xmyfw.com.cn/pc/show.php?id=55
2024年06月23日
23 阅读
0 评论
0 点赞
2023-08-09
【Layui】图片预览
要在 layui 中点击图片实现预览功能,你可以使用 layui 的 layer.photos 方法来轻松实现图片预览。以下是如何在点击图片时使用 layer.photos 来创建图片预览的示例代码:<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Layui Image Preview</title> <link rel="stylesheet" href="path/to/layui/css/layui.css"> <script src="path/to/layui/layui.js"></script> </head> <body> <div class="images-container"> <img class="preview-image" src="path/to/image1.jpg" alt="Image 1"> <img class="preview-image" src="path/to/image2.jpg" alt="Image 2"> <img class="preview-image" src="path/to/image3.jpg" alt="Image 3"> </div> <script> layui.use(['layer'], function() { var layer = layui.layer; // 点击事件处理 $('.preview-image').on('click', function() { var images = []; // 存放图片信息的数组 var currentImage = this.src; // 获取所有图片信息 $('.preview-image').each(function() { images.push({ alt: $(this).attr('alt'), src: $(this).attr('src') }); }); // 在弹窗中预览图片 layer.photos({ photos: { title: '图片预览', // 弹窗标题 data: images, start: images.findIndex(img => img.src === currentImage) // 从当前图片开始预览 }, shadeClose: true, // 点击遮罩关闭弹窗 closeBtn: 2 // 显示关闭按钮 }); }); }); </script> </body> </html> 在上述示例代码中,我们创建了一个包含多个图片的容器,然后为每个图片添加了共同的类名 preview-image。通过点击图片,会触发 layer.photos 方法,该方法可以用来创建一个图片预览弹窗。我们使用一个包含图片信息的数组来配置预览图片,其中 title 为弹窗标题,data 包含图片信息,start 指定从数组中的哪个索引开始预览。请注意,替换代码中的图片 URL 和其他相关信息。此示例为演示目的,你可以根据实际需求进行调整和修改。
2023年08月09日
197 阅读
0 评论
0 点赞
2023-07-20
【JavaScript】鼠标禁止右键禁止打开控制台及键盘禁用
// 1.禁用右键菜单 document.oncontextmenu = new Function("event.returnValue=false"); // 2.禁用鼠标选中 document.onselectstart = new Function("event.returnValue=false"); document.onkeydown = () => { console.log(window.event.keyCode); for (let i = 9; i < 47; i++) { if (window.event && window.event.keyCode == i) { return false; } } for (let i = 58; i < 65; i++) { if (window.event && window.event.keyCode == i) { return false; } } for (let i = 91; i < 300; i++) { if (window.event && window.event.keyCode == i) { return false; } } // 禁用ctrl+shift+i if (window.event.ctrlKey && window.event.shiftKey && window.event.keyCode == 73) { return false; } if (window.event.shiftKey) { return false; } // 禁用ctrl+r if (window.event.ctrlKey && window.event.keyCode == 82) { return false; } }
2023年07月20日
128 阅读
0 评论
0 点赞
2023-05-22
【Layui】控制页面元素展示隐藏
页面打开监听 layer.ready(function () { $(".integralnum").show(); $(".jichugoods").hide(); });
2023年05月22日
442 阅读
0 评论
0 点赞
2023-05-10
【Layui】layui点击输入框选择时间,时间控件闪烁或消失
解决办法:在render的时候添加 ,trigger: 'click' 属性 来解决.laydate.render({ elem: '#issueDate_id' ,type: 'datetime' ,trigger: 'click' //自动弹出控件的事件,采用click弹出 ,可以解决控件点击闪烁的问题 });
2023年05月10日
175 阅读
0 评论
0 点赞
2023-05-05
【JavaScript】给页面加水印
function watermark(settings) { //默认设置 var defaultSettings = { watermark_txt: "text", watermark_x: 20, //水印起始位置x轴坐标 watermark_y: 20, //水印起始位置Y轴坐标 watermark_rows: 20, //水印行数 watermark_cols: 20, //水印列数 watermark_x_space: 100, //水印x轴间隔 watermark_y_space: 50, //水印y轴间隔 watermark_color: '#aaa', //水印字体颜色 watermark_alpha: 0.4, //水印透明度 watermark_fontsize: '15px', //水印字体大小 watermark_font: '微软雅黑', //水印字体 watermark_width: 210, //水印宽度 watermark_height: 80, //水印长度 watermark_angle: 20 //水印倾斜度数 }; if (arguments.length === 1 && typeof arguments[0] === "object") { var src = arguments[0] || {}; for (key in src) { if (src[key] && defaultSettings[key] && src[key] === defaultSettings[key]) continue; else if (src[key]) defaultSettings[key] = src[key]; } } var oTemp = document.createDocumentFragment(); //获取页面最大宽度 var page_width = Math.max(document.body.scrollWidth, document.body.clientWidth); var cutWidth = page_width * 0.0150; var page_width = page_width - cutWidth; //获取页面最大高度 var page_height = Math.max(document.body.scrollHeight, document.body.clientHeight) + 450; page_height = Math.max(page_height, window.innerHeight - 30); //如果将水印列数设置为0,或水印列数设置过大,超过页面最大宽度,则重新计算水印列数和水印x轴间隔 if (defaultSettings.watermark_cols == 0 || (parseInt(defaultSettings.watermark_x + defaultSettings.watermark_width * defaultSettings.watermark_cols + defaultSettings.watermark_x_space * (defaultSettings.watermark_cols - 1)) > page_width)) { defaultSettings.watermark_cols = parseInt((page_width - defaultSettings.watermark_x + defaultSettings.watermark_x_space) / (defaultSettings.watermark_width + defaultSettings.watermark_x_space)); defaultSettings.watermark_x_space = parseInt((page_width - defaultSettings.watermark_x - defaultSettings.watermark_width * defaultSettings.watermark_cols) / (defaultSettings.watermark_cols - 1)); } //如果将水印行数设置为0,或水印行数设置过大,超过页面最大长度,则重新计算水印行数和水印y轴间隔 if (defaultSettings.watermark_rows == 0 || (parseInt(defaultSettings.watermark_y + defaultSettings.watermark_height * defaultSettings.watermark_rows + defaultSettings.watermark_y_space * (defaultSettings.watermark_rows - 1)) > page_height)) { defaultSettings.watermark_rows = parseInt((defaultSettings.watermark_y_space + page_height - defaultSettings.watermark_y) / (defaultSettings.watermark_height + defaultSettings.watermark_y_space)); defaultSettings.watermark_y_space = parseInt(((page_height - defaultSettings.watermark_y) - defaultSettings.watermark_height * defaultSettings.watermark_rows) / (defaultSettings.watermark_rows - 1)); } var x; var y; for (var i = 0; i < defaultSettings.watermark_rows; i++) { y = defaultSettings.watermark_y + (defaultSettings.watermark_y_space + defaultSettings.watermark_height) * i; for (var j = 0; j < defaultSettings.watermark_cols; j++) { x = defaultSettings.watermark_x + (defaultSettings.watermark_width + defaultSettings.watermark_x_space) * j; var mask_div = document.createElement('div'); mask_div.id = 'mask_div' + i + j; mask_div.className = 'mask_div'; mask_div.appendChild(document.createTextNode(defaultSettings.watermark_txt)); //设置水印div倾斜显示 mask_div.style.webkitTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)"; mask_div.style.MozTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)"; mask_div.style.msTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)"; mask_div.style.OTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)"; mask_div.style.transform = "rotate(-" + defaultSettings.watermark_angle + "deg)"; mask_div.style.visibility = ""; mask_div.style.position = "absolute"; mask_div.style.left = x + 'px'; mask_div.style.top = y + 'px'; mask_div.style.overflow = "hidden"; mask_div.style.zIndex = "9999"; //让水印不遮挡页面的点击事件 mask_div.style.pointerEvents = 'none'; mask_div.style.opacity = defaultSettings.watermark_alpha; mask_div.style.fontSize = defaultSettings.watermark_fontsize; mask_div.style.fontFamily = defaultSettings.watermark_font; mask_div.style.color = defaultSettings.watermark_color; mask_div.style.textAlign = "center"; mask_div.style.width = defaultSettings.watermark_width + 'px'; mask_div.style.height = defaultSettings.watermark_height + 'px'; mask_div.style.display = "block"; oTemp.appendChild(mask_div); }; }; document.body.appendChild(oTemp); } function getNow() { var d = new Date(); var year = d.getFullYear(); var month = change(d.getMonth() + 1); var day = change(d.getDate()); var hour = change(d.getHours()); var minute = change(d.getMinutes()); var second = change(d.getSeconds()); function change(t) { if (t < 10) { return "0" + t; } else { return t; } } var time = year + '年' + month + '月' + day + '日 ' + hour + '时' + minute + '分' + second + '秒'; return time; }使用方法:var now = getNow(); watermark({ "watermark_txt": "小破孩的小站" + now });var now = getNow();
2023年05月05日
131 阅读
0 评论
0 点赞
2022-12-31
【Layui】layui预览图片,视频
window.showBigImage = function (e) { layer.open({ type: 1, title: false, closeBtn: 0, shadeClose: true, //点击阴影关闭 area: [$(e).width + 'px', $(e).height + 'px'], //宽高 content: "<img src=" + $(e).attr('src') + " />" }); }; 使用方法: <img class="layui-upload-img" style="width: 95px;" src="{$icon.index_url}" id="demo1" onclick="showBigImage(this)"> function imgOpen(url) { layui.use(['carousel', 'laydate', 'layer'], function () { //页面层-图片 layer.open({ closeBtn: 2, shift: 3, shadeClose: true, // 点击遮罩关闭层 type: 1, title: '预览图', resize: true, // maxmin: true, //打开放大缩小按钮 area: ['1024px', '608px'], content: "<span><img style='width:100%;height: 100%;' src=" + url + " /></span>",//注意,如果str是object,那么需要字符拼接。 }); // layer.photos({ // photos: { // "title": '预览图', // "start": 0, // "data": [{ "src": url}] // } // , closeBtn: 1//是否显示关闭按钮 // }); }) } //视频预览,传url,width,height function previewVideo(url, width, height) { width = width ? width : '65%'; height = height ? height : '65%'; let content = '<video width="100%" height="90%" controls="controls" autobuffer="autobuffer" autoplay="autoplay" loop="loop">' + '<source src="' + url + '" type="video/mp4"></source></video>'; layer.open({ type: 1, maxmin: true, //打开放大缩小按钮 title: '视频播放', area: [width, height], content: content, }); }
2022年12月31日
192 阅读
0 评论
0 点赞
2022-12-15
【Layui】Layui事件监听
//监听表单单选框复选框选择 form.on('radio', function (data) { console.log(data.value); //得到被选中的值 }); //监听表单下拉菜单选择 form.on('select', function (data) { console.log(data.value); //得到被选中的值 }); //监听表单复选框选择 form.on('checkbox', function (data) { console.log(data.value); //得到被选中的值 }); //监听表格复选框选择 table.on('checkbox(demo)', function (obj) { console.log(obj); }); //layui监听input内容变动简单粗暴 $(function(){ //输入框的值改变时触发 $("#inputid").on("input",function(e){ //获取input输入的值 console.log(e.delegateTarget.value); }); }); //点击触发监听 $(document).on('click','.class',function(othis){ var data = othis.currentTarget; data.remove(); layer.msg('清除成功'); }); 带注释 form.on('event(过滤器值)', callback); //监听checkbox复选 form.on('checkbox(filter)', function(data){ console.log(data.elem); //得到checkbox原始DOM对象 console.log(data.elem.checked); //是否被选中,true或者false console.log(data.value); //复选框value值,也可以通过data.elem.value得到 console.log(data.othis); //得到美化后的DOM对象 }); //监听switch复选 form.on('switch(filter)', function(data){ console.log(data.elem); //得到checkbox原始DOM对象 console.log(data.elem.checked); //开关是否开启,true或者false console.log(data.value); //开关value值,也可以通过data.elem.value得到 console.log(data.othis); //得到美化后的DOM对象 }); //监听radio单选: form.on('radio(filter)', function(data){ console.log(data.elem); //得到radio原始DOM对象 console.log(data.elem.dataset);//获取dataset参数 console.log(data.value); //被点击的radio的value值 }); //监听submit提交: <button lay-submit lay-filter="*">提交</button> form.on('submit(*)', function(data){ console.log(data.elem) //被执行事件的元素DOM对象,一般为button对象 console.log(data.form) //被执行提交的form对象,一般在存在form标签时才会返回 console.log(data.field) //当前容器的全部表单字段,名值对形式:{name: value} return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。 }); 监听Select的改变 <!-- 不用form 用div也可以 --> <form class="layui-form"> <div class="layui-form-item"> <label class="layui-form-label">下拉选择框</label> <div class="layui-input-block"> <select name="interest" lay-filter="aihao"> <option value="0">写作</option> <option value="1">阅读</option> <option value="2">听歌</option> <option value="4">游戏</option> </select> </div> </div> </form> <script type="text/javascript" src="./layui/layui.js"></script> <script type="text/javascript"> layui.use('form', function(){ var form = layui.form; form.on('select(aihao)',function(data){ console.log(data); console.log(data.elem); //得到select原始DOM对象 console.log(data.value); //得到被选中的值 console.log(data.othis); //得到美化后的DOM对象 console.log(data.elem.dataset);//获取dataset参数 }); });
2022年12月15日
277 阅读
0 评论
0 点赞
2022-12-14
【Layui】layui自动关闭页面
layui <script> layui.use('layer',function(){ var layer = layui.layer; layer.ready(function(){ layer.msg('操作成功,3秒后会自动关闭当前页面!', {offset: '15px',icon: 1,time: 3000}, function(){ var index = parent.layer.getFrameIndex(window.name); parent.layer.close(index) window.parent.location.reload(); return false; }); }); }); </script> js <div id="box"> <p>页面在 <span id="Os">5</span> s后跳转 </p> </div> <script> var Os=document.getElementById("Os"); var num=5; var timer=setInterval(function () { num--; Os.innerText=num; if(num==0){ window.location.href="https://www.baidu.com/"; } },1000) </script>
2022年12月14日
158 阅读
0 评论
0 点赞
2022-11-11
【Layui】Layui表单校验
layui 表单自带校验: lay-verify:是表单验证的关键字其中对其指定不同值可实现简单验证required (该输入框必填项)phone(手机号)email(邮箱)url(网址)number(数字)date(日期)identity(身份证)同时Layui支持多条规则的验证:格式:lay-verify=”验证A|验证B”例如:lay-verify=”require|phone|number”这表示此处填入为 手机号,必须为数字,且为必填项。
2022年11月11日
119 阅读
0 评论
0 点赞
2022-06-29
【JavaScript】js接受后端变量处理数组 eval()
前端 var arr = eval("{$arr}"); 后端: $arr = json_encode($dtArr); 'arr' => str_replace('"','',$arr),
2022年06月29日
148 阅读
0 评论
0 点赞
2022-06-23
【JavaScript】JS实现图片防盗链
// js部分 const fs = require('fs'); const path = require('path'); const http = require('http'); const url = require('url'); const getHostName = function (str) { let { hostname } = url.parse(str); return hostname; }; http.createServer((req, res) => { let refer = req.headers['referer'] || req.headers['referrer']; // 请求头都是小写的 // 先看一下refer的值,去和host的值作对比,不相等就需要防盗链了 // 要读取文件 返回给客户端 let { pathname } = url.parse(req.url); let src = path.join(__dirname, 'public', '.' + pathname); // src代表我要找的文件 fs.stat(src, err => { // 先判断文件存不存在 if (!err) { if (refer) { // 不是所有图片都有来源 let referHost = getHostName(refer); let host = req.headers['host'].split(':')[0]; if (referHost !== host) { // 防盗链 fs.createReadStream(path.join(__dirname, 'public', './1.jpg')).pipe(res); } else { // 正常显示,如果路径存在,可以正常显示直接返回 fs.createReadStream(src).pipe(res); } } else { // 正常显示,如果路径存在,可以正常显示直接返回 fs.createReadStream(src).pipe(res); } } else { res.end('end'); } }); }).listen(8888); <-- html部分 --> <body> <img src="http://www.chenhd.me:8888/2.png" /> </body> 文章引用:https://juejin.cn/post/6844903596937461773
2022年06月23日
159 阅读
0 评论
0 点赞
2022-06-23
【CSS】整个网站设置黑白背景 用于需求:悼念日
<style> html{ -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o-filter: grayscale(100%); filter: grayscale(100%); filter: gray; } </style>
2022年06月23日
116 阅读
0 评论
0 点赞
2022-06-23
【Layui】Layui获取多选的id
// 监听checkbox form.on('checkbox(change)',function(data){ var arr_box = []; $('input[type=checkbox]:checked').each(function() { arr_box.push($(this).val()); }); var str_arr = arr_box.toString(arr_box); // console.log(strarr); // console.log(arr_box.join(",")); 自定义分隔符 $("#chargess").val(str_arr); }); //全选 form.on('checkbox(allChoose)', function (data) { var child = $("input[name='test']"); child.each(function (index, item) { item.checked = data.elem.checked; // console.log($(this).val()); }); form.render('checkbox'); }); //单选 function exportsheet(){ var chk_value=[]; $('input[name="test"]:checked').each(function(){ chk_value.push($(this).val()); }); console.log(chk_value); }
2022年06月23日
322 阅读
0 评论
0 点赞
2022-06-23
【JS】解决百度统计被刷广告的办法,屏蔽非法广告
百度统计被刷广告的原理想要斩草除根,就需要知己知彼,明白他们操作的原理以后,就可以有效的遏制他们无下限的刷广告。他们是这样做的,先写一个机器爬虫,爬取页面内容,寻找「hm.baidu.com/hm.js」如果找到了就说明你使用了百度统计,然后再取后面的参数,就得到了你的百度统计ID,然后保存到数据库,拿到你的的百度统计ID以后,就可以进行下一步,使用程序批量的给百度统计接口发送数据,也就是说这些内容他们根本不是真的去你的网站,而是直接给百度统计的接口提交了数据,对你的网站流量没有任何贡献,你只有看广告的份。我也是被刷广告刷的很严重,是在忍无可忍,必须解决一下他们了。百度统计给我们的代码:<script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?868e22cfca30f68b16f4c32562c7e649"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script>将百度统计的特征,也就是地址打散成数组,再组装使用:var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); var analytics_bd = '868e22cfca30f68b16f4c32562c7e649'; hm.src = ['ht', 't', 'ps', ':/', '/h', 'm', '.', 'ba', 'i', 'd', 'u.c', 'o', 'm/', 'h', 'm', '.j', 's?', analytics_bd].join(''); var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s);})();需要改动的就只有一行,注意「hm.src = "https://hm.baidu.com/hm.js?868e22cfca30f68b16f4c32562c7e649";」这行代码,被拆散为数组,然后再拼装起来使用。这样他们的爬虫程序就无法识别到你在使用百度统计了。
2022年06月23日
132 阅读
0 评论
0 点赞
2022-06-23
【JS】静止事件的脚本
//关闭右键 document.oncontex`请输入代码`tmenu=function(){event.returnValue=false;} //关闭所有f2-f12快捷键 屏蔽 Ctrl+n document.onkeydown=function(){if(111<event.keyCode<123||(event.ctrlKey&&(event.keyCode==78))){event.keyCode=0;event.returnValue=false;}} //关闭 f1帮助 document.onhelp=function(){event.returnValue=false;} //关闭shift+点击链接 document.onclick=function(){if(event.shiftKey&&(event.srcElement.tagName=="A")){event.returnValue=false;}} //禁止拷贝 document.oncopy=function(){event.returnValue=false;} //禁止选择 document.onselectstart=function(){event.returnValue=false;} //禁止粘贴 document.onpaste=function(){event.returnValue=false;} //禁止 退格键的 前进后退功能 document.onkeydown = function() {}//{if (event.keyCode==8) {event.returnValue=false;}} //禁止打印 window.onbeforeprint=function(){window.document.body.style.display="none"}
2022年06月23日
106 阅读
0 评论
0 点赞
2022-06-23
【jQuery】点击复制微信号并跳转到微信
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <script src="https://cdn.jsdelivr.net/clipboard.js/1.5.12/clipboard.min.js"></script> <title>复制按钮</title> </head> <body> 微信号:<span id="target">需要被复制的微信号</span> <button class="btn" data-clipboard-action="copy" data-clipboard-target="#target" id="copy_btn"> 点击复制 </button> </body> <script> $(document).ready(function(){ var clipboard = new Clipboard('#copy_btn'); clipboard.on('success', function(e) { alert("微信号复制成功",1500); window.location.href='weixin://'; e.clearSelection(); console.log(e.clearSelection); }); }); </script> </html>
2022年06月23日
189 阅读
0 评论
1 点赞
2022-06-23
【Layui】实现发送验证码倒计时
/** * 发送验证码 */ var countdown=60; function sendsms(){ var sms = $('#sendsmsid').text(); if(sms == '发送验证码' || sms == '重新发送验证码'){ var iphone = $("#phone").val(); $.ajax({ url:"{:url('index/getSmsByIphoneNumber')}", type:'get', dataType: "json", data:{mobile_num:iphone}, success:function(res){ // console.log(res); // return false; if(res.code == 200){ layer.msg(res.message, { icon: 6,//成功的表情 },function(){ judgeAgainSend(); }); return false; }else{ layer.msg(res.message,{icon: 5});//失败的表情 return false; } }, }); }else{ judgeAgainSend(); } } /** * 判断重新发送 * @returns {boolean} */ function judgeAgainSend(){ if(countdown == 0){ $('#sendsmsid').text('重新发送验证码'); $('#sendsmsid').removeClass('layui-btn-disabled'); countdown = 60; return false; }else{ $('#sendsmsid').text('已发送 '+countdown+'秒 后可重新发送'); $('#sendsmsid').addClass('layui-btn-disabled'); countdown--; setTimeout(function() { sendsms(); } ,1000) } }
2022年06月23日
113 阅读
0 评论
0 点赞
2022-06-23
【Layui】x-admin后台页面使用layer.msg提示失败解决办法
form.on 监听提交,所包含的代码最后要加上 return false; layui.use(['form', 'layer'], function() { $ = layui.jquery; var form = layui.form, layer = layui.layer; //自定义验证规则 form.verify({ pass: [/(.+){6,12}$/, '密码必须6到12位'], repass: function(value) { if ($('#L_pass').val() != $('#L_repass').val()) { return '两次密码不一致'; } }, phonesms:function(value){ if(!value.match('^[0-9]*$')){ return '验证码是数字'; } if(value.length != 6){ return '验证码长度是6位数字'; } } }); //监听提交 form.on('submit(add)', function(data) { //发异步,把数据提交给php layer.confirm('是否确定进行下一步',{ icon: 3, //问号的表情 btn: ['下一步','取消'] ,//按钮 },function () { var result = data.field, info = $('.layui-form').serialize(); $.ajax({ url:"{:url('page/registOne')}", type:'get', dataType: "json", data:$('.layui-form').serialize(), success:function(res){ // console.log(res); // return false; if(res.code == 200){ layer.msg(res.message, { icon: 6,//成功的表情 time: 3000 //3秒关闭(如果不配置,默认是3秒) }, function(){ // location.reload(); location.href="{:url('page/registTwo')}"; }); }else{ layer.msg(res.message,{icon: 5});//失败的表情 return; } }, }); }); return false; }) });
2022年06月23日
124 阅读
0 评论
0 点赞
2022-06-21
【PHP】QueryList安装与使用(快速简单学采集)
示例 采集百度搜索结果列表的标题和链接。 **采集代码** $data = QueryList::get('https://www.baidu.com/s?wd=QueryList', null, [ 'headers' => [ 'User-Agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36', 'Accept-Encoding' => 'gzip, deflate, br', ] ])->rules([ 'title' => ['h3', 'text'], 'link' => ['h3>a', 'href'] ]) ->range('.result') ->queryData(); print_r($data); 采集结果 Array ( [0] => Array ( [title] => QueryList|基于phpQuery的无比强大的PHP采集工具 [link] => http://www.baidu.com/link?url=GU_YbDT2IHk4ns1tjG2I8_vjmH0SCJEAPuuZN ) [1] => Array ( [title] => PHP 用QueryList抓取网页内容 - wb145230 - 博客园 [link] => http://www.baidu.com/link?url=zn0DXBnrvIF2ibRVW34KcRVFG1_bCdZvqvwIhUqiXaS ) [2] => Array ( [title] => 介绍- QueryList指导文档 [link] => http://www.baidu.com/link?url=pSypvMovqS4v2sWeQo5fDBJ4EoYhXYi0Lxx ) //... ) QueryList安装:https://querylist.cc/docs/guide/v4/installation好用的工具:八爪鱼后羿火车头文章摘要:https://querylist.cc/docs/guide/v4/exampleQueryList手册:https://querylist.cc/docs/guide/v4
2022年06月21日
174 阅读
0 评论
0 点赞
1
2