
php
文章平均质量分 71
萧-青
萧之以沫,谓之以青,是为萧青
展开
-
Redis 主从复制的原理及演化
一、什么是主从复制在数据库语境下,复制( replication)就是将数据从一个数据库复制到另一个数据库中。主从复制,是将数据库分为主节点和从节点,主节点源源不断地将数据复制给从节点,保证主从节点中存有相同的数据。有了主从复制,数据可以有多份副本,这带来了多种好处:第—,提升数据库系统的请求处理能力。单个节点能够支撑的读流量有限,部多个节点,并构成主从关系,用主从复制保持主从节点数据一致,如此主从节点一起提供服务。第二,提升整个系统的可用性。因为从节点中有主节点数据的副本,当主节点宕机后,可以原创 2022-01-13 17:41:41 · 6205 阅读 · 0 评论 -
php lumen 批量导入excel 文件 有时候总列数是 两个字母
首先,我用的项目环境是 lumen 6.0X, php 7.4,下一步lumen是需要安装 phpexcel扩展的,至于步骤,随便百度一下就有很多,只是简单写一下导出文件 ,对于没有安装的,懒得百度的,可以走一遍这个流程1、安装 maatwebsite/excelcomposer require maatwebsite/excel2、在bootstrap/app.php中加入 (就是注册)$app->register(Maatwebsite\Excel\ExcelServicePr原创 2020-07-23 19:28:33 · 682 阅读 · 0 评论 -
lumen 底层model
最近项目有些紧,对博客懈怠了,临时补充项目中用到的两篇,下面代码是项目中用到的 底层model ,lumen版本6.0X,贴代码:里面有多个数据库链接、分页等等很方便<?php/** * base model * * User: Faithlee * Date: 2020/5/18 * Time: 下午3:16 */namespace App\Model;use Illuminate\Database\Eloquent\Model;use Illuminate\Datab原创 2020-07-23 18:32:14 · 792 阅读 · 0 评论 -
lumen model层查询出来的对象全部转化为数组
laravel/lumen框架model层查询出来的对象转化数组最近项目用到lumen写接口,所以看了一下手册,发现lumen已经更新到(6.X)了,以前也用过laravel5.2感觉差距还是挺大的,话不多说,贴代码:model层代码//获取学生信息function getCandInfo($where, $clomun = '*', $order = '', $orderTy...原创 2020-04-03 17:22:37 · 1423 阅读 · 0 评论 -
composer太慢,配置国内镜像
原理:因为composer安装包数据是从github.com上下载的,安装包的元数据从packagist.org上下载作为两个国外的网站,连接速度会很慢,而且很有可能网站被墙。所以composer中国全量镜像将安装包数据以及安装包元数据缓存到国内的机房,并通过国内的CDN进行加速,这样我们访问时就不用向国外的网站发起请求,所以提升了访问的速度。配置:那么我们怎么使用com...转载 2020-04-03 10:55:56 · 822 阅读 · 0 评论 -
超链接 传递 中文 问题
小技巧:在php里面,有时候会用到中文的搜索,某些情况下只需要查询一次或者跳页面的,需要传递中文参数,但后台接收是乱码的,这时候就感谢这个函数了,贴代码:location.href='/arrange/get_rooms/<?php echo $proj_id; ?>/<?php echo $exam_id; ?>/' + encodeURI(city)+'/'+...原创 2019-11-20 11:54:07 · 606 阅读 · 0 评论 -
csv 文件 手动转化为 .bat 文件 下载
我们是考务型公司,有时候会针对某场考试,根据客户需要,导出测评量表的 pdf 版报告,一般来说客户只需要导出的考生报告链接 csv 文件(就是excel文件就可以了) , 但也有量大的 两三万人的那种,需要每个人的pdf版,不要一个excel,里面是链接这种。根据实际业务需求,这种要求我们技术人员导出的 几万人的报告 ,每年次数很少(客户做测评的少),原本打算用php生成pdf,最后打包下载,...原创 2019-10-28 13:32:12 · 693 阅读 · 0 评论 -
php 生成二维码一些问题及解决办法
php二维码生成与验证码生成类似,就是用户访问某个页面,就会在某个页面即时生成。有人就会说直接生成一个二维码,然后把它的路径存入库里面不就行了。但现在有个问题,我们当初就是把二维码路径存入数据库,到做集群的时候该怎么办,那么这样问题就来了,在A服务器内,我们生成的二维码地址在public目录下,用户访问的是B服务器,而B服务器public目录下面就没有了该路径(因为没有生成二维码),所以现在问题就...原创 2018-11-13 15:22:55 · 4162 阅读 · 1 评论 -
php json_encode有关键值问题
情景再现在做项目中遇到过这样一个问题:跟别人对接接口,我需要调用别人接口,把有关考生成绩的数据传递给别人,别人再掉我们接口,回传考生报告链接,我再把链接入库。有个问题就是我调别人接口,数据量太大,达到上百万,所以我分批次调用别人接口,根据我的库里考生报告链接来判断自己成功了多少人。有些情况下我调用接口可能会重复推考生数据,根据数据库里面有这个考生链接的话,我就把这个考生删了,然后再推其他考生数...原创 2018-10-30 14:05:51 · 2874 阅读 · 0 评论 -
1024程序员
程序员节节日背景部分互联网机构一直密切关注程序员健康,针对程序员经常周末加班与工作日熬夜的情况,倡议每年的10月24日为1024程序员节,在这一天建议程序员拒绝加班。1024程序员节,是中国程序员的共同节日。在1842年,人称“数字女王”的阿达·洛芙莱斯(Ada Lovelace)编写了历史上首款电脑程序。在1834年,阿达的朋友——英国数学家、发明家兼机械工程师查尔斯·巴贝其(Charles...原创 2018-10-24 17:43:38 · 251 阅读 · 0 评论 -
php 如何用curl接收POST地址 写接口
所谓接口,说白了就是一个没有视图的控制器,双方定义好格式及签名保证数据安全性就好,绝大部分都是json串,至于接口文档,算是最重要的了,可以用ShowDoc写,百度一下,很好用的免费开源产品/*这是PHP创建的一个小接口*/<?php$mysqli = new mysqli('localhost', 'root', '123456','interfacetest');mysql...原创 2018-08-02 11:27:05 · 3156 阅读 · 0 评论 -
PHP超时处理全面总结
【 概述 】 在PHP开发中工作里非常多使用到超时处理到超时的场合,我说几个场景:1. 异步获取数据如果某个后端数据源获取不成功则跳过,不影响整个页面展现2. 为了保证Web服务器不会因为当个页面处理性能差而导致无法访问其他页面,则会对某些页面操作设置3. 对于某些上传或者不确定处理时间的场合,则需要对整个流程中所有超时设置为无限,否则任何一个环节设置不当,都会导致莫名执行中断...转载 2018-07-25 10:04:43 · 1347 阅读 · 0 评论 -
php与ASCII码的关系
首先 简单说一下历史,ascii码最开始是美国人搞出来的,用来干什么呢?我们知道,计算机只知道0和1,如果我们要计算机识别除了01之外的字符,例如 'a',我们要先告诉计算机‘1100001’就是'a'。跟摩斯密码一样,敲几下三长两短就是代表sos(开玩笑)。所谓的字符编码,就是跟计算机打交 道,跟计算机约定一连串的0101到底代表了什么字符。ascii编码是鼻祖了,不过由于ascii只有8b...转载 2018-07-25 09:50:20 · 3930 阅读 · 0 评论 -
php身份证效验位 效验规则
public function id_card(){ $id_card = '360822197801180255'; $z = substr($id_card,17); $xishu = array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2); $a = substr($id_card,0,1...转载 2018-07-06 10:52:00 · 1143 阅读 · 0 评论 -
外部调用ajax返回数据问题
偶尔用到ajax返回成功success里面data数据问题,例如: $.ajax({ type:'POST', url:'/range/arr', dataType:'json', ...原创 2018-06-21 19:41:26 · 1709 阅读 · 0 评论 -
CI框架批量修改
工作中用到,记录一下$this->db->update_batch();生成一条update命令是以你提供的数据为基础的,并执行查询。你可以传递一个数组或对象的参数给update_batch()函数。下面是一个使用一个数组作为参数的示例:Generates an update string based on the data you supply, and runs the query...原创 2018-06-21 19:33:01 · 2900 阅读 · 0 评论 -
php获取当前毫秒时间戳
最近在做一个智能家居项目的后台,需要实时上传用户对智能设备的配置信息到服务器,以便实现同步,因此对于时间的精确度要求比较高,最开始直接是用php的time()函数来获取时间戳,获取的时间精确到秒级别,如果客户端同时操作的话还是有可能产生冲突,因此建议将时间戳精度提高到毫秒级别,但是在php没有自带的函数能获取毫秒时间戳,但提供了一个microtime()函数,如果调用时不带可选参数,本函数以 "m...转载 2018-11-13 16:20:09 · 1640 阅读 · 0 评论 -
PHPExcel设置页边距 格式 颜色 大小等
这篇为phpexcel的中文翻译版,基本涵盖了你想要做的任何东西,主要是别人写的东西,又加了一些自己经过实践过的,仅供参考PHPExcel开发者文档1.目录2. 4先决条件2.1。软件要求42.2。安装说明42.3。入门42.4。有用的链接和工具42.4.1。的OpenXML / SpreadsheetML中42.4.2。常见问题52.4.3。 6教程3.建筑73.1...转载 2018-11-12 09:59:53 · 4533 阅读 · 0 评论 -
php 找出一个数组中的两个数字,让这两个数字之和等于一个给定的值
有关于php的有好几种思路,很多博客都有我就不一一介绍了,只是贴代码仅供参考。问题:给一个一维数组,不确定具体有多少元素,例如$arr = [1,2,3,4,3,2,1],让他们任意两数字相加的和等于一个给定的值,比如说 5 ,可能有好几个两个数相加都是5,但只是取最先开始两个相加的数等于5的,这两个数的索引。先贴php代码,两种方式,一种两个for循环,另外一种一个循环第一种:func...原创 2018-11-22 15:10:53 · 2053 阅读 · 0 评论 -
php 导出 excel 导出多个sheet
由来:公司是考务公司,做考试系统的,考试就会有考场(例:第二考场),考点(例:西北工业大学考点),签到表张贴表我要做的就是让运营方面更加轻松,那么比如运营要导出每个考点下面考场的签到表和张贴表,正常来说一个考场有签到、张贴表一个个导出的话,如果考试人数很多,一个个导出再打印会很麻烦,效率特别低,所以我写了一个程序,导出的签到表,张贴表可以按照考点导出一个excel,这个excel内是多个she...原创 2019-09-09 14:14:39 · 4689 阅读 · 0 评论 -
json_encode 图片地址会失败
在最近做项目中间曾遇到过特别奇怪的问题: json_encode 数组没问题,但是在数组中间某个字符串加上图片地址,再次把数组转化成 json 就会有问题,例如:这是我单独摘出来的一部分,就是因为 json_encode 图片路径会有问题 ,发现这样也看不到图片,1. 怀疑是单引号双引号的事情,于是开始测验,结果还是不行,单引号排除2. 怀疑是宽度跟高度的原因,删除宽高,结果依旧,此时内心...原创 2019-08-29 14:28:48 · 484 阅读 · 0 评论 -
php 过滤存储型XSS攻击
最近做的项目被测试测出了存在存储型XSS,至此记录一下,问题出在了 input 框 :payload:"a" onclick=alert(1)>也做了一些XSS过滤,但是不全,有从网上找了一些,弄了一个简单粗暴的后台接收 input 框字符串内容,存在被攻击,便整理了一个比较粗暴的方法//过滤存储型XSS攻击//过滤存储型XSS攻击public function safe...原创 2019-06-21 18:02:35 · 4077 阅读 · 0 评论 -
php 判断进程是否正在执行
情景:公司目前在做一个邮件发送的功能,发邮件是用的第三方的,公司是考务公司,给考生发邮件,考生有时候会很多,所以需要写一个进程发送,现在写的是判断发送邮件进程是否正在运行,如果是,就表示还有邮件发送,退出进程,贴代码:public function sendEmailsByCli(){ if (PHP_SAPI !== 'cli') { echo '...原创 2019-05-30 17:48:04 · 4667 阅读 · 0 评论 -
开发程序员为什么不能准确评估项目时间
分享链接:http://www.woshipm.com/it/6118.html一个曾经与我一起工作过的经验丰富的项目经理声称,他拿到程序员的时间估算以后,先将它乘以 π,然后转化下一个时间数量级后,才能得到真正的值。1 天转化成 3.14 周。他过去因为程序员不擅长估算时间而吃尽了苦头。我创建了一个用来翻译程序员时间估算的表格,来尽量缩小估算错误。 时间估算时困难的。每一...转载 2019-05-30 10:25:03 · 730 阅读 · 0 评论 -
CI框架 where 跟 OR 怎么连用
最近再用CI框架,有时候会懵一下,因为没太多时间看手册,所以用到的自己先总结一下,免得到时候自己还得花时间再看,下面贴代码:我先用的是public function get_cands_where( $where, $begin=null, $size=null, $paixu = 'cand_city', $projs = '') { if( isset( $begi...原创 2019-04-19 11:35:18 · 3733 阅读 · 0 评论 -
php 跟前端对接接口开发数组与对象问题
最近公司在做一个新系统,我负责的是整个后台模块,还有其他模块是几位同事负责的,但最后前端只调我接口,所以说我还负责所有的后台输出。 在跟前端对接的过程中有点小问题,就是我传的明明是数组,json_encode给前端之后就变成对象了,why?,经检查是数组问题,只有索引数组json_encode之后才是数组,不是索引的就是对象,前端是用VUE写的,所以不能很方便的处理对象跟数组,所以只能...原创 2019-03-12 09:50:25 · 1863 阅读 · 0 评论 -
生成唯一token值
用户登陆生成唯一token值,代码如下public function getToken() { return md5(uniqid(microtime(true),true));}其中 uniqid 基本可以确定是唯一用户登陆的了,但为了保证确定唯一,后 microtime 是获取毫秒级时间戳这两个拼起来在md5加密一下更安全,当然也可以随机抽取md5之后的某一段当作toke...原创 2019-01-23 11:37:07 · 5953 阅读 · 1 评论 -
curl 配置详解
第一类:对于下面的这些option的可选参数,value应该被设置一个bool类型的值:选项可选value值备注CURLOPT_AUTOREFERER当根据Location:重定向时,自动设置header中的Referer:信息。CURLOPT_BINARYTRANSFER在启用CURLOPT_RETURNTRANSFER的时候,返回原生的(Raw)输出。CURLOPT_COOKIE...转载 2018-12-04 16:26:25 · 8198 阅读 · 0 评论 -
判断一个二维数组的数据是否在另外一个二维数组里重复
当我最先碰到这个问题是工作中批量导入数据,防止里面有数据跟数据库里原有的重复。大多数人想到的是挨个循环对比,感觉这样速度有点慢,所以根据php函数来解决的$new_cand_idcard = array_column( $cands, 'cand_idcard' );array_column 先把要导入的二维数组,根据要判断的具体字段值可以把二维数组换为一维数组,'然后再把数据库里原创 2018-05-08 18:26:42 · 5008 阅读 · 2 评论 -
php 原生即点即改
原生的前端页面,可以支持同时修改多个字段header("content-type:text/html;charset=utf-8");$dsn = "mysql:host=localhost;dbname=case";$pdo = new PDO($dsn, 'root', 'root');$pdo->query("set names utf8");$search =原创 2018-04-23 14:59:34 · 531 阅读 · 0 评论 -
mysql之explain
Explain1、为什么要使用ExplainMySQL的EXPLAIN命令显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。2、通过Explain可以得到1、表的读取顺序2、表的读取操作的操作类型3、哪些索引可以使用4、哪些索引被实际使用5、表之间的引用6、每张表有多少行被优化器查询原创 2018-01-15 19:19:11 · 239 阅读 · 0 评论 -
linux定时执行shell脚本
写一个shell脚本,定时执行简单示例很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如说定时去备份服务器数据、数据库数据等 不适合人工经常做的一些操作这里简单说下 Shell俗称壳,类似于DOS下的command和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程...转载 2018-01-13 15:29:39 · 81212 阅读 · 2 评论 -
面试题大总结
csrf是什么:CSRF跨站点请求伪造,1. 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;2. 在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;3. 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;4. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第原创 2017-11-15 13:46:19 · 681 阅读 · 0 评论 -
linux centos6.4安装多个mysql实现主从复制
有时间整理了一下关于主从复制,大家可以参考一下LINUX操作系统:centOS7之前数据库一:MYSQL版本:mysql-5.0.56PORT:3306系统目录:/usr/local/mysql3306数据库二:MYSQL版本:mysql-5.1.72PORT:3307系统目录:/usr/local/mysql3307一.安装开发包(使用默认CENTOS原创 2017-12-13 10:01:06 · 347 阅读 · 0 评论 -
php常量,关于$_SERVER的一些参数解释
$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。$_SERVER['HTTP_HOST'] 请求头信息中的Host内容,获取当前域名。$_SERVER["SERVE原创 2017-12-02 15:19:06 · 623 阅读 · 0 评论 -
缓存穿透与缓存雪崩 及解决办法
什么是缓存穿透?一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如DB)。如果key对应的value是一定不存在的,并且对该key并发请求量很大,就会对后端系统造成很大的压力。这就叫做缓存穿透。应用场景:查询一个必然不存在的数据。比如文章表,查询一个不存在的id,每次都会访问DB,如果有人恶意破坏,很可能直接对DB造成影响。 如何避免?原创 2017-11-21 14:56:42 · 1498 阅读 · 0 评论 -
php 关于一些路径问题,实测
DOCUMENT_ROOT:即apache配置文件中指定的DocumentRoot (E:\www\)SCRIPT_NAME:从DocumentRoot(根目录)到本文件的路径+当前文件名(\test\test.php)PHP_SELF:从DocumentRoot(根目录)到本文件的路径+当前文件名(\test\test.php)//不常用__FILE__:从磁盘开始到本文件的绝对路径原创 2017-11-29 19:42:44 · 216 阅读 · 0 评论 -
PHP验证码生成
[导读] 验证码在表单实现越来越多了,但是用js的写的验证码,总觉得不方便,所以学习了下php实现的验证码。session_start(); $image = imagecreatetruecolor(100, 30); //1>设置验证码图片大小的函数 //5>设置验证码颜色 imagecolorallocate(int im, int red, int原创 2017-09-19 14:52:18 · 370 阅读 · 0 评论 -
php session与cookie区别
==========================================1.COOKIE 存在于客户端。SESSION 存在于服务端。2.COOKIE 默认存储大小为 4kb. 一般设置COOKIE 不会超过 20个,具体看需求。3.SESSION 默认以文件方式存储。生存时间默认为 24分钟。可通过修改 php.ini 进行配置。4.SESSION 默认是基于CO原创 2017-09-19 15:02:10 · 311 阅读 · 0 评论 -
memcache 缓存雪崩现象及解决方法
1、什么是memcache雪崩 缓存雪崩一般是由某个缓存节点失效,导致其他节点的缓存命中率下降, 缓存中缺失的数据(memcache经典场景,当有一个客户端的服务请求过来的时候,首先去查 memcache,memcache里面是否缓存过了这个数据,如果没有这个数据,我们就去数据库查询,如果有这个数据,我们就从memcache里面取出来,然后给它返回到客户端,这是一个经典的查询过程,原创 2017-09-19 15:07:19 · 524 阅读 · 0 评论