自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

帆酱的博客

一个平凡人的生活、工作、学习——https://my.weblf.cn/website/

  • 博客(164)
  • 资源 (1)
  • 收藏
  • 关注

原创 vue使用Clodop插件打印

一、前往lodop官网,下载插件,http://www.lodop.net/index.html这里下载的window64位的,将插件安装好,运行,会看到点击‘去了解C-Lodop>>’,会跳转至使用说明页面,在这个页面里,可以打印测试页面,以验证插件正常连接打印机。

2023-07-28 09:41:14 4348

原创 php redis的使用

为了降低由于高并发导致的对数据库的频繁读取,采用redis队列的方式可以解决。先安装redis,然后再到php拓展里打开redis组件。set和get的使用,简单存储和取出操作。也可以存入json格式,取的时候再转换。

2023-07-02 22:23:06 711

原创 php设置和获取Cookie

这段代码会向`$url`发送一个GET请求,并把响应保存到一个名为`cookie.txt`的文件中。在响应头中,服务器会返回一个名为`Set-Cookie`的字段,其中包含了当前用户的Cookie信息。Cookie是由服务器发给客户端的一小段数据,在客户端保存着。服务器可以通过这个Cookie来判断当前用户的状态,比如是否已经登录。读取cookie.txt的内容,不一定能用上,因为cURL可以自动读取cookie文件。在网络爬虫中,获取网页的Cookie是非常必要的,因为很多网站需要登录才能访问。

2023-06-25 16:16:03 1146

原创 vue监听鼠标与键盘事件

【代码】vue监听鼠标与键盘事件。

2023-06-19 16:42:51 2723

原创 vue点击鼠标生成24字社会主义核心价值观上浮特效

【代码】vue点击鼠标生成24字社会主义核心价值观上浮特效。

2023-06-19 15:06:30 225

原创 php分析nginx日志,自动屏蔽ip地址

3、分析最近的1万条记录,如果总条数小于700条,则跳出;如果最早和最小ip之间时间相隔小于12小时,则跳出;ip访问数大于300次,则符合条件,并与stopip文件中已保存的ip对比,如果stopip文件中没有,则添加至文件。每当用户访问nginx服务器上的web时都会留下访问记录,这些记录被记录在access_log,可在配置文件中看到。1、可以自动执行,即使用命令行执行,每5分钟执行一次,已被注释。2、使用宝塔面板的计划任务定时访问地址,这样比较简单。

2023-06-08 14:57:03 219

原创 php利用tcpdf生成签名盖章的pdf文件并支持中文

【代码】php利用tcpdf生成签名盖章的pdf文件并支持中文。

2023-05-09 12:31:27 1586 1

原创 通过宝塔面板shell定时执行sh脚本执行php代码与操作数据库

二、test.php文件内自定义你要执行的sql,操作数据库,引用文件的话记得要写绝对路径。三、在test.sh中写shell要执行的php。一、先在宝塔的目录下新建这两个文件。可以看到数据库已插入数据。四、在计划任务中建立脚本。

2023-05-03 13:31:24 2771

原创 Vue之导出xlsx

一、安装插件二、直接导出当前表格数据(配合element-ui使用)三、通过数据插入导出(json转excel格式导出)

2023-05-02 20:46:38 1155 2

原创 vue之通过element-ui与xlsx读取本地xls文件

二、通过element-ui获取本地文件。

2023-05-02 19:08:35 614

原创 vue-esign移动端签名插件

1、先使用npm安装vue-esign。2、复用模板signature.vue。h和w是获取的设备可视页面宽度。

2023-04-24 16:12:31 1798

原创 宝塔面板公网ip非80端口非443端口部署ssl

3、申请ssl证书,由于ssl默认访问80端口,所以使用文件验证失败,只能使用DNS验证。使用Let's Encrypt申请证书,使用dns验证,勾选手动解析,点击申请。此时会弹出一个让你设置TXT解析记录的框,到域名服务商那里添加解析记录,回到宝塔面板,点击验证。如果验证成功,此时访问。2、再到域名运营商做A记录解析,此时可以通过http://test.xxx.cn:8085访问到网站。有不少人使用家用宽带,虽然申请下来了公网ip,但是运营商封了80与443端口,但仍想使用ssl证书。

2023-02-22 17:04:33 3247

原创 vue配合element-ui的tabs动态设置keep-alive动态缓存3级路由页面

二级路由挂载点,由于二级路由页面只有几个基础页面,例如注册登录等,因此全部缓存,如果不缓存的话,会导致切换到二级路由页面后,缓存的三级页面失效。需要注意的是include/exclude绑定的属性是页面中设置的name值 而不是路由中的name值。当在实际项目中 可以运用vuex保存你需要缓存的页面的name值,可以配合tabs使用。当在几个tabs之间来回切换时,不需要更新vuex,直接router跳转就行。下面是配合element-ui的tabs使用。当删除tabs时,同样更新vuex。......

2022-08-09 17:35:00 3189

原创 php post请求其他服务器的接口并输出结果

<?phpheader('Content-type:text/html;charset=utf-8');header("Access-Control-Allow-Origin:*");header("Access-Control-Allow-Methods:GET, POST, OPTIONS, DELETE");header("Access-Control-Allow-Headers:token,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Reque.

2022-05-25 08:14:46 882

原创 PHPExcel读取文件后按条查询数据库再修改保存

数据格式结果:代码:<?php//更新小区名set_time_limit(0);//不超时中断ob_end_clean();ob_implicit_flush();header('X-Accel-Buffering: no'); // 关键是加了这一行,不等脚本执行完就输出结果//初始化方法require ('../methods/ini_methods.php');//封装的方法require ('../methods/public_methods...

2022-04-30 21:59:04 330

转载 php不等脚本执行完输出echo

一般echo var_dump ....等等输出函数(语句)是经过了几个步骤,最终到浏览器展示以下是PHP的输出流程php echo,var_dump -> php output_buffering -> webServer buffer-> browser buff-> browser displayphp输出语句/函数->php缓冲区配置->web服务器缓冲区配置->浏览器缓冲区->浏览器显示php缓冲区配置主要由php.ini 中的out

2022-04-27 22:04:40 466

原创 vue+php关于用户权限与权限更新

要想给前端页面的每个路由甚至是每个页面的一个按钮都添加相应权限,最好的办法就是将所有页面的路由存储在数据库中上图中step代表了当前权限的层级,up_node代表此权限节点依托于上一个节点的id,一级权限的上级节点默认为-1,role_type代表权限种类,1代表根节点,2代表页面,3代表按钮。唯一标识marks为前端页面判定的唯一依据,与前端路由中meta.marks一致,如下图由此转化为可视化页面为下图:注意:层级关系最好和前端路由关系一致而权限和用户的关系在关系表中,.

2022-03-03 16:59:39 923

原创 php时间 date() time()使用方法

date_default_timezone_set("Asia/Shanghai");//设置时区echo date_default_timezone_get();//获取时区:Asia/Shanghaiecho time();//获取时间戳10位:1645662536//获取13位时间戳function getUnixTimestamp (){ list($s1, $s2) = explode(' ', microtime()); return (float)sprint

2022-02-24 09:17:43 531

原创 php mysql查询结果字段数据累加

$query = "select sum(people_num) as jeTotal from water_work_list where handle_time between '{$start_time}' and '{$end_time}'";$result=mysqli_query($link, $query);if(!$result){ echo retJson(402,'获取异常工单处理总数失败',mysqli_error($link)); exit();}while.

2022-02-23 15:12:04 901

原创 php 超时自动登出

用户登录系统一定时间后如果没有操作就自动退出//超时自动登出session_start();if(isset($_SESSION['expiretime'])) { if($_SESSION['expiretime'] < time()) { unset($_SESSION['expiretime']); // header('Location: logout.php?TIMEOUT'); // 登出 echo retJson(401.

2022-02-21 10:51:42 1034 3

原创 nginx跨域请求,自定义Headers,Options拦截

浏览器将CORS请求分为两类:简单请求(simple request)和非简单请求(not-simple-request),简单请求浏览器不会预检,而非简单请求会预检。同时满足下列三大条件,就属于简单请求,否则属于非简单请求1.请求方式只能是:GET、POST、HEAD2.HTTP请求头限制这几种字段:Accept、Accept-Language、Content-Language、Content-Type、Last-Event-ID3.Content-type只能取:application/

2022-02-18 16:43:11 6293

原创 Vuejs 监听 vuex 中值的变化

<script>import store from '@/vuex/store' // 直接导入store对象export default { data () { return { } }, computed: { count () { return store.state.scroll.user_role_list } }, methods: { }, watch: { count (newCount, .

2022-01-25 11:41:45 1324

原创 php遍历文件夹及其子文件夹的指定类型文件,读取文件内容并找到含某关键字文件

<?php$fileList = array();$dir = $_SERVER['DOCUMENT_ROOT']."/用户异常申请报告单文件夹2";//服务器根目录下某个文件夹$ext =".php";//包含某个特定字符串的文件,这里使用文件后缀$word="123";//读取文件中内容,匹配相应字符串findWord($dir,$ext,$word);/* 功能:遍历文件夹及其子文件夹的指定类型文件,读取文件内容并找到含某关键字文件 输入:$dir 目录 , $ex.

2022-01-14 15:14:57 553

原创 php异步上传图片并创建文件夹保存

点击文件选择图片,点击上传,一同传输的还有年月日表单信息,创建年月日文件夹,将图片保存,返回图片路径html:<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> <meta http-equiv="Pra

2022-01-14 11:30:30 474

原创 php多条件筛选查询mysql

if(!empty($user_id)){//如果传入用户id $query="select * from water_work_list where user_id = '{$user_id}' order BY time desc limit {$current_num} , {$num}"; $rowcount = search_all_row($link,"select count(*) from water_work_list where user_id ...

2022-01-10 16:51:13 1355

原创 使用element icon时跨域, https访问http报错

项目的静态资源全部放到cdn里,其它资源访问正常,可唯独element-icon.ttf文件跨域解决方法:使用外部公开的CDN, 这里推荐unpkgunpkg 是一个快速的全球内容交付网络,适用于npm 上的所有内容。使用它可以使用以下 URL 快速轻松地从任何包加载任何文件首先,在main.js里找到element-ui的静态资源加载路径 然后在node_modules里找到该文件 最后找到element-icont并替换url重新打包上传,此时加载的资源就是u...

2021-12-14 09:23:43 1674 2

原创 js正则处理字符串将整个带特殊class的ele删除

代码:GetTagByClassUsingRegex (tag, cls, html) { // tag:标签名,cls:类名,html:要处理的字符串 var reg = new RegExp('<' + tag + "[^>]*class[\\s]?=[\\s]?['\"]" + cls + "[^'\"]*['\"][\\s\\S]*?<\/" + tag + '>', 'g') return html.replace(reg, '') }

2021-09-06 08:36:05 451

原创 php字符串转数组,数组转字符串

123

2021-06-28 11:11:38 134

原创 vue+php使用七牛云存储解决富文本图片冗余问题

解决服务器中图片冗余的方法很多,本篇介绍利用七牛云自带的api解决图片冗余问题问题:在前端编辑富文本上传图片时,一般有两种方式,一种是将图片在本地预览,文件则在本地缓存,一种是直接上传服务器,然后将返回的图片地址展示。第一种明显消耗资源大且不稳定,易造成浏览器卡顿;而第二种是目前主流方式。对于第二种方式,在上传图片后,并不保存或者直接关闭浏览器,导致上传的图片一直滞留在服务器中,对服务器资源造成浪费。解决:通过七牛云api,在上传时将上传的文件改为临时存储,设为一天后自动删除...

2021-06-28 11:04:54 389

原创 vue在路由中使用全局事件总线

1、routers下单index.jsvar _this = ''// 获取原型对象上的push函数const originalPush = Router.prototype.push// 修改原型对象中的push方法Router.prototype.push = function push (location) { // 如果重复点击小说管理,则发送总线 if (location == '/manageindex/storymanage') { let obj = {

2021-06-10 10:47:54 688 1

原创 微信小程序-图片自适应

image组件使用使用mode:widthFix,宽度固定,高度自适应<image class="nav_img" mode="widthFix" src="{{img}}"></image>注意,在初次进入页面时会有高度拉伸情况,使用样式display:block可解决(二).使用bindload绑定函数动态自适应。<image src="../uploads/2.jpg" bindload="imageLoad"style="width:{

2021-05-18 11:25:29 2305

原创 小程序-绑定点击事件并传参

wxml:<view class="bottom_in" data-type="2" bindtap="ispraise"> <image class="img" src="../../img/my/icon1.png"></image></view>js:ispraise(event){ let type=event.currentTarget.dataset.type; console.log(type)},.

2021-05-18 11:03:14 542

原创 小程序-wx:if 与 hidden

wx:if与hidden都可以控制微信小程序中元素的显示与否。区别:wx:if是遇 true显示,hidden是遇 false显示。wx:if在隐藏的时候不渲染,而 hidden在隐藏时仍然渲染,只是不呈现。所以如果频繁切换的话,用 wx:if将会消耗更多资源,因为每次呈现的时候他都会渲染,每次隐藏的时候,他都会销毁。如果切换并不频繁的话,用 wx:if相对来说较好些,因为它会避免初始就一下渲染那么多。使用方式<view class="bottom_...

2021-05-18 10:57:31 523

原创 小程序-下拉刷新与加载更多

json:{ "enablePullDownRefresh": true}wxml:<view class='container'> <!-- 列表 --> <view class='oul'> <navigator class='oli' wx:for="{{list}}" wx:key="index" url='../detail/detail?id={{item.book_id}}' open-type="naviga

2021-05-14 11:27:29 195

原创 解决:小程序wx.switchTab: url 不支持 queryString

将需要传的参数放到全局js中。1.定义全局参数:app.js中: globalData: { a: 0, //初始值 b: '', },2.第一个页面中跳转前将参数放到全局js中: var app = getApp() Page({ // 给全局参数赋值 app.globalData.a= 1 app.globalData.b= 'haha' wx.switchTa

2021-05-08 23:07:25 3894

原创 微信小程序路由与参数传递

小程序跳转页面分两种方式:第一种是tabBar页面,就是底部app.json定义那几个tabBar 第二种为非tabBar页面,除去上面的就为非tabBar页面。第一种跳转到tabBar:说明:跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面wx.switchTab({ url: '/pages/mine/mine',})注意:在跳转到tabBar页面时无法携带参数,如果想要携带参数,可使用全局变量第二种重定向到非tabBar页面,最大特点没有返回按钮

2021-05-08 14:07:38 581

原创 小程序点击按钮分享

小程序分享小程序中除了右上角的自带分享之外,还可以做成点击按钮分享wxml<button class="bottom_in" open-type="share" id="share" plain="true" > <image class="img" src="../../img/my/share.png"></image></button>其中open-type="share"是核心属性,且只能由button元素触发js

2021-05-05 22:27:51 3494

原创 小程序Cannot read property ‘setData‘ of null;

报错代码:错误原因:因为this作用域指向问题,success方法指向闭包,所以这个this是闭包里面。解决方法

2021-05-02 22:59:42 274

原创 微信小程序请求服务器接收不到参数

原来是wx.request默认header头部为: headers: { 'Content-Type': 'application/json' },这种模式对于原来接口不能接收,应改为: header: { 'content-type': 'application/x-www-form-urlencoded' },

2021-05-02 22:51:31 344

原创 小程序--组件的创建与参数传递

一、父传子父代码:wxml:<no_data id='no_data' title="暂无数据"></no_data>json{ "backgroundTextStyle": "dark", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "点赞列表", "navigationBarTextStyle": "black", "backgr

2021-05-02 22:44:06 230

php利用tcpdf生成签名盖章的pdf文件并支持中文

解压压缩包,将tcpdf文件夹上传至服务器,使之能够访问,通过浏览器访问/tcpdf_old1/example_001.php,可以看到预览效果,要修改的话改example_001.php或者重新创建个文件,其他配置文件不用修改,中文补丁已打

2023-05-02

pdf在线预览功能,解决微信浏览器无法在线预览pdf文件,直接跳转下载的问题

将此文件夹上传至服务器,使之能够访问,访问https://你的域名/pdfjs/web/viewer.html?file=可访问的pdf地址,用于解决微信浏览器无法在线预览pdf文件,而直接跳转下载的问题

2023-05-02

echarts_china

chinaecharts地图城市散点图 给每个城市自定义坐标,根据每个城市的value值所在范围给每个坐标点设置不同的颜色,鼠标悬停显示tip,tip值为城市名称以及value

2019-04-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除