后端
摘星辰Li
这个作者很懒,什么都没留下…
展开
-
php爬虫非常好用的一个库
具体库连接:https://github.com/jae-jae/QueryList爬虫的流程:用代理模式爬取示例1:require 'autoload.php';use QL\QueryList;$urlParams = null;$opts = [ // Set the http proxy,设置代理模式 'proxy' => 'socks5h://127.0.0.1:7890', //Set the timeout time in seconds原创 2021-03-18 16:00:49 · 649 阅读 · 0 评论 -
主从复制延迟导致坑
背景:线上出现了用户注册了多条重复记录排查问题:第一种一开始怀疑是不是并发问题造成,后来查了大多数都是隔了几秒钟,并发出现概率小第二种就是看出现重复数据的时间,然后线上看到从库出现了延迟复制的问题,这就问题出现的关键原来代码逻辑:先查询传过来的openid是否在从库中存在,不存在就进行主库插入。出现问题关键点:前端第一次请求时候,判断从库不存在,然后主库插入注册数据。由于出现复...原创 2019-11-26 10:56:39 · 210 阅读 · 0 评论 -
mysql隐式转换
定义:当操作符与不同类型的操作数一起使用时,会发生类型转换以使操作数兼容。则会发生转换隐式举一个常见例子:1、我们先创建一个表,有关手机号查询create table user( id int(11) not null primary key auto_increment, phone varchar(30) null comment "phone" );#手机号创建索引...原创 2019-11-25 17:01:23 · 176 阅读 · 0 评论 -
restful和rcp,傻傻分不清
先简单了解概念:什么是RESTREST是一种架构风格,指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。REST规范把所有内容都视为资源,网络上一切皆资源。解释一波:没什么新奇的地方,就是rest还是在http协议上面定义一种规则。比如下面我们添加一个用户,原来我们定义添加用户是用addUser这个动词,现在直接对http协议用post来告诉我们...原创 2019-11-05 10:01:50 · 1140 阅读 · 1 评论 -
php数字千分位格式化输出
php中有个函数可以千分位的时候默认逗号分隔显示,方便阅读number_format ( float $number , int $decimals = 0 , string $dec_point = "." , string $thousands_sep = "," ) : string//直接模板输出例子{$row.dau|number_format}//输出结果:23,241,23...原创 2019-07-24 11:27:41 · 1676 阅读 · 0 评论 -
乐观锁和悲观锁例子
乐观锁:例子对于一个正在出售的火爆商品,同一个时间,同时有10个人同时发起了10个线程来购买,10个线程读取到数据库的库存有20件和version为9。那么乐观锁读取num数量和version版本两个字段,在更新的结果时候,我们就要更新条件where version=9这条语句,具体UPDATE goods SET num=num-1,version=version+1 WHERE ver...原创 2019-08-01 16:57:18 · 888 阅读 · 0 评论 -
PHPer的成长之路
推荐一篇比较好的PHPer成长道路上应该学习的知识体系架构,也就当做对自己知识点进行一次查漏补缺学习。原文链接:欢迎STAR,《PHPer的成长之路》简单浏览知识点如下:...原创 2019-08-06 16:12:37 · 400 阅读 · 0 评论 -
三种设计模式分类
1、创建型模式作用: 在创建者模式中,客户端不再负责对象的创建与组装,而是把这个对象创建的责任交给其具体的创建者类,把组装的责任交给组装类,客户端只负责对象的调用,明确了各个类的职责。简单工厂模式(Simple Factory)工厂方法模式(Factory Method)抽象工厂模式(Abstract Factory)创建者模式(Builder)原型模式(Prototype)单...转载 2019-08-15 11:18:03 · 280 阅读 · 0 评论 -
virtualbox和vagrant安装centos7
简单解释:virtualbox就是一个虚拟机(而且还是开源),它的作用是模拟出一套硬件环境可以给别的系统在上面运行。vagrant说白就是一个工具(类似老毛桃),这个工具就是能快速安装好一套系统,还配置好系统的参数之类的。安装virtualbox下载地址:https://www.virtualbox.org/wiki/Downloadsvagrant下载地址:https://...原创 2019-08-27 10:27:15 · 905 阅读 · 0 评论 -
vagrant和virtualbox修改默认位置
原因:因为vagrant启动在c盘,很快爆满了。需要移动到其他盘参考文献:解决uuid重复问题:http://www.webdesignblog.asia/software/virtualbox-moving-vdi-file-re-linking-guest/#sthash.31xW7Rek.dpbs修改路径教程:http://urouge.github.io/how-to-...原创 2019-08-27 10:35:33 · 5945 阅读 · 2 评论 -
多个搜索引擎搜索网站,提高搜索效率,快人一步
网站地址如下:https://www.elubiao.com/ 一路飙http://www.duoci.com/ 多次搜 (比较喜欢这个)https://search.chongbuluo.com/ 快搜 (这个比较全)在随手放一个程序猿的百宝箱:http://code.giffox.com/...原创 2019-09-27 10:37:27 · 2383 阅读 · 0 评论 -
xss攻击理解
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。XS...原创 2019-10-10 09:59:34 · 394 阅读 · 0 评论 -
thinkphp5查询where类型
大致上分三种:表达式查询(这种应该是5中全新的方式,底下两种跟3时候差不多)数组条件字符串条件参考链接:https://www.kancloud.cn/manual/thinkphp5/118073...原创 2019-06-06 10:59:42 · 1242 阅读 · 0 评论 -
thinkphp循环标签自定义变量自增
就是标签功能不能实现自己想要的东西,就写原始的php代码{php}$i=0;{/php}{foreach name="sourceTypeList" item="vo"} {php}$i++;{/php}{/foreach}原创 2019-06-06 10:59:07 · 1362 阅读 · 0 评论 -
redis管道例子
管道好处: 假 设不会因为tcp 报文过长而被拆分。可能两个tcp报文就能完成四条命令,client可以将四个incr命令放到一个tcp报文一起发送,server则可以将四条命令 的处理结果放到一个tcp报文返回。通过pipeline方式当有大批量的操作时候。我们可以节省很多原来浪费在网络延迟的时间。需要注意到是用 pipeline方式打包命令发送,redis必须在处理完所有命令前先缓存起...原创 2018-04-04 15:16:29 · 363 阅读 · 0 评论 -
Chrome模拟微信、QQ内置浏览器
在Chrome中模拟微信内置浏览器微信和QQ内置浏览器UA 安卓QQ内置浏览器UA: Mozilla/5.0 (Linux; Android 5.0; SM-N9100 Build/LRX21V) > AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 > Chrome/37.0.0.0 Mobile Safari/5...转载 2018-05-17 16:34:30 · 21891 阅读 · 4 评论 -
php创建目录和删除文件
1、创建目录function mkFolder($path){ if(!is_readable($path)) { is_file($path) or mkdir($path,0777,true); }}**==注意==:**midir是一级一级添加目录,要递进增加目录加多参数true。2、删除文件/** * 删除文件 *...原创 2018-05-18 16:52:41 · 370 阅读 · 0 评论 -
Spark在centos7一键安装脚本
脚本代码如下:#!/bin/bash# Install Spark on CentOS 7yum install java -yjava -versionyum install wget -ywget http://downloads.typesafe.com/scala/2.11.7/scala-2.11.7.tgztar xvf scala-2.11.7.tgzsudo...原创 2018-04-28 16:57:37 · 708 阅读 · 0 评论 -
thinkphp3.2升级到5.0注意事项
URL的变动首先对3.X的不严谨给开发者们带来的不正确的引导表示歉意,在5.0版本正式废除类似/id/1方式 可以通过get获取到id的方法,严格来讲这样的url是不属于$_GET的,现在可以通过param获取,具体使用可以通过请求部分查询。模型的变动新版的模型查询返回默认对象,系统默认增加了toArray方法,许多开发者在all或select尝试使用toArray来转换为数组,在此希望开发者能理...转载 2018-05-28 13:56:18 · 5473 阅读 · 0 评论 -
php用csv文件导出大量数据
主要解决问题有两个:第一个大数据就要长时间,用通过函数set_time_limit(0);第二个就是数据太大,内存溢出问题。那就要分批切割导入文件输出给浏览器具体代码如下: /** * 导出vip订单列表数据 * @param $condition */ protected function exportVipOrder($con...原创 2018-07-18 16:07:20 · 1829 阅读 · 0 评论 -
thinkphp3升级5一些变更
1、数据库join方法变更Db::table('think_artist')->alias('a')->join('think_work w','a.id = w.artist_id')->join('think_card c','a.card_id = c.id')->select();2、模板库标签库标签默认是{和},所以原来<和>就...原创 2018-08-11 11:45:55 · 1225 阅读 · 0 评论 -
fastadmin笔记,应该能解决大部分问题
1、调整弹出框大小,元素新增data-area&lt;a href="javascript:;" data-area='["1000px","650px"]' class="btn btn-success btn-add title="{:__('Add')}" &gt;{:__('Add')}&l原创 2019-01-31 17:29:25 · 9252 阅读 · 0 评论 -
phpmailer发送邮件
发送邮件需要解决问题:发送邮件需要找到对应服务器地址和url解决在阿里云等服务器发送不出去问题发送邮件出现乱码问题 $mail = new PHPMailer(true); try { //Server settings //$mail->SMTPDebug = 2; ...原创 2019-03-22 16:19:34 · 191 阅读 · 0 评论 -
mysql 一对多查询出一行数据
这个超级好用,我们有个一对多的表,我们可以一次性取出多条相关联数据拼接给到前端显示。SELECT company.*,(SELECT GROUP_CONCAT(contact_name) FROM company LEFT JOIN company_contact on company.id=company_contact.company_id ) as b FROM company ...原创 2019-04-30 16:48:52 · 3905 阅读 · 1 评论 -
thinkphp5集成Ueditor
1、官网下载ueditor地址:https://ueditor.baidu.com/website/download.html#ueditor下载是UTF-8:2、下载完后解压出来重名为ueditor,再复制到public下方3、在view层测试代码<!-- 加载编辑器的容器 --> <script id="container" name="cont...原创 2019-05-16 10:33:49 · 939 阅读 · 0 评论 -
关于秒杀简单理解
方案主要分成2个层上游层服务层上游层具体做法:当秒杀还没开始的时候,我们可以禁止抢购按钮不能点击开始抢购开始后,这里可以设计用户点击后就禁止点击了,这样可以避免用户再重复点击,造成很大的压力。服务层服务层面主要是减少数据库压力,所有请求都放进redis的队列里面,超出数量范围的都直接返回告知用户已抢购完。对于用应用程序跑的抢购,这个我们也用些每分钟请...原创 2018-04-04 15:13:30 · 184 阅读 · 0 评论