- 博客(43)
- 收藏
- 关注
原创 php中RabbitMQ的使用实例
最近在学习队列的使用。主要是在做一个简单的应用架构。 方便对mq的调用。然后说一些自己学习的见解。文章主要讨论以下问题。什么是消息队列rabbitmq的整体结构exchange类型针对direct 类型写一个实例主要还是做一个实例。 rmq的搭建、介绍网上文章很多。就没必要拿出来说明。 文章图片均来自网络。什么是队列消息队列(Message Queue)是一种应用间的通信方式,...
2019-04-09 03:05:07 2411
原创 swoole的socket实现聊天功能
前言贵有恒,何必三更起五更睡;最无益,只怕一日暴十寒。偶然打开CSDN,忽然发现距离上一篇文章整整过去了一年。感慨时间过去飞快。这一年忙忙碌碌,但又没什么变化。一周一篇文章的约定,不知从哪天的忙碌开始抛到脑后。裸辞后,休息了一个月,最近开始整理知识点。突然想起来要记录。那就坚持吧。不知道能坚持几天,但有开始总是好的。实现思路实现socket服务器。能连接、接受消息并作出回应、中断退出。...
2019-04-07 01:15:41 2873
原创 PHP生成Excel之表格(二)
php使用phpexcel提供的操作方法,生成excel。遇到的问题上一篇文章中PHP生成Excel之表格(一),给出了常规情况下使用phpexcel来生成excel的方法。但是这种方法很麻烦,还需要翻文档查看很多方法。而且生成的样式也不是最完美的。那么这篇文章,我们就思考如何解决这个,既繁琐又不完美的生成方式。思考之前结束phpexcel这个插件时,有说到。除了能读取excel、...
2018-03-27 22:20:38 980 1
原创 PHP生成Excel之表格(一)
文章使用phpexcel提供的操作方法,生成excel文件。Excel目标我们将要生成的excel最终效果如下图显示。 代码演示public static function ExportExcel($data,$filename=''){ $data; //数据数组(三维数组) $filename=empty($filename)?"":$filena...
2018-03-25 21:56:03 7609
原创 PHPExcel简介
专栏前言在程序中开发excel,已经有一年的时间。后续可能会比较少去研究这一块的内容。所以申请了一个专栏,也是为了能够对前段时间在这方面的学习做一个总结。 那么在excel在一块的研究达到一个什么样的水平?可以说,目前只要能提供excel模板,就能按照模板的格式、样式生产一模一样的excel。所以,想在这一块研究的朋友,这个专栏绝对是有帮助的。 专栏前后会围绕一个开源插件——PHPExce...
2018-03-24 22:52:54 395 1
转载 PHP控制客户端缓存(转载)
写代码时,一直没注意去使用过浏览器这一块的缓存。偶然发现项目中封装了一个浏览器缓存的公共方法。 尝试调用该方法,但是每一次刷新都会重新请求服务器。觉得奇怪,既然项目中有使用,为什么不生效?后来在网上发现了这篇文章,才知道。header("Cache-Control:max-age=5");这种缓存方式,在浏览器刷新、F5是无效的。只用后退,多次访问页面才会走缓存。 除此之前,文章作...
2018-03-24 22:13:20 446
原创 简单调用face++人脸识别
前言文章演示如何调用face++实现人脸对比。使用工具python。这里只演示一个对比的接口,接口的应用场景有登录验证,证件对比等。除此之外face++还提供了许多接口,和离线sdk。具体接口文档face++官方都非常详细,没必要每个接口都进行说明。接口调用# coding=utf-8# face++ 人脸识别对比import requestsimport base64...
2018-03-17 21:19:19 2660
原创 jquery 实现拼图小游戏
九宫格拼图小游戏是小时候比较常见的小游戏之一。闲着无聊就用js简单写了一个。 游戏的玩法很简单。九宫格中有八个小图片。随机打乱之后,将八张小图片拼接成一个完整的图。html代码<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><style> body{ borde...
2018-03-10 17:06:06 3193
原创 python写一个爬虫GUI程序并生成windows程序
写在前面也许坚持一件事,一年、两年后会有很大收获吧。 上周一朋友让帮忙写个爬虫,抓取某网站的商品列表。写完之后又不知道怎么给他,导出文件吧,可能每次要的时候又来找我。发代码吧,又怕他没有python环境。所以干脆写成一个GUI页面,再做成exe文件直接给他,他爱怎么玩就怎么玩。文章包含内容本篇文章包含的东西挺多。为了缩短写文章的时间。这里我直接省略了爬虫代码的编写。因为关于爬虫...
2018-03-04 22:12:22 8401 2
原创 Linux下mysql简单配置
新安装的mysql会存在编码上的问题。默认的编码不是utf8,从而导致当插入中文时,数据库中显示乱码。 本文主要是配置utf-8编码(永久配置),和允许远程连接。初始配置连接上mysql后,查看字符配置。mysql> show variables like '%char%'; 这里需要修改的是character_set_database 和 character_set_server 。可以直接通
2017-11-07 15:29:54 388
原创 python爬取京东机票,监控机票,机票价格分析
又到了一年一度的国庆假期。今年国庆、中秋撞到一起,所以打算回家过节。从帝都到海口,每到节假日的机票都是全价票…2400大洋的单程票,消费不起呀!所以为了买到便宜点的机票,我就写了一个简单的爬虫来监控机票价钱。 可能有人会觉得,阿里飞猪,携程什么的都有监控,何必自找麻烦。对于一个程序员来说,能自己做到的事情就不会去使用别人的东西。而且他们的产品不一定能满足我的需求啊。废话不多说,正文分割线!分析目标
2017-09-25 22:36:08 10744 4
原创 php imagecreatefrom* 系列函数重建图片时,产生的CRC error
在使用php GD库时,遇到这样一个报错。message 'imagecreatefrompng(): gd-png: fatal libpng error: IDAT: CRC error' “致命图像错误,CRC错误。”没有在图片领域有过研究,并不知道CRC是什么。这里不会专门介绍CRC,也不会介绍图片格式。需要了解可以自行查资料。猜想一首先我认为是图片不能正常打开的问题。但事实上,所有图片均
2017-09-23 16:02:56 4246
原创 yii2下swiftmailer发生邮件时,附件中文名的解决方法
最近需要做一个邮件发送,需要添加多条附件发送。yii2有自带swiftmailer扩展。正常的邮件发送可通过下面方式添加$message = Yii::$app->mailer->compose();// 附件来自本地文件$message->attach('/path/to/source/file.pdf');//$message->attach(url);当然也可以添加一个http地址。
2017-09-17 17:23:09 1243
原创 php中json_encode和json_decode使用注意事项
一直都有用json_encode和json_decode来传数据。确没能去好好了解这两个函数。今天偶然看到json_decode的使用,才发现之前没把这个函数用到位。所以,记录一下这两个函数的概念。json_encode在php中,json_encode用来将变量转换成json字符串。这个在php中使用的最多。一般是将数组转成json串。用于传递数据。json_decode可以理解为,将编码后的js
2017-09-11 23:03:29 432
原创 php实现无限极分类
最近在负责报表自动化管理的小功能,想从工作内容中整理点东西形成博客。但是过程中发现,这功能并没有代码实现上的难点。基本上值得说的地方,也就定时任务的合理设计,而定时任务之前有相关的博文。再有就是,开发思路和数据库合理的设计。这部分也不好形成文章。 但是好久没有写博客,希望能坚持下来。想起之前写过几个递归,干脆就整理一篇简单的无限极分类。 无限极分类,其实也就是一个递归算法。合理的利用递归确实能节
2017-09-10 22:41:42 457
原创 mysql分组查询max值所在的记录
今天临近下班,要写一个sql。着急下班,所以有点乱。想了半天没想出来这么写这个sql。查询表里的max值和这个值所在的记录。 晚上睡前才意识到自己吧内联inner jion 概念搞混了。inner只取字段相等的记录。所以查询伪代码如下。 例如,查询一个表 table 每一天记录的最大时间。 先查询这个表A中,每一天记录的最大时间。将查询结果作为另一个表B。然后将两个表关联,关联条件既B表最大时
2017-08-29 23:52:50 2545
原创 简单封装一个上传插件——支持拖拽和预览
最近碰到一个需求。需要上传很多图片,但是又不是批量上传。场景是这样的。我需要从数据表中查出一行一行的数据,每一行都需要更新一个对应的图片。天才需求方不喜欢批量上传,因为需要让他们给每个图片命名。 原生input flie上传能满足对方需求,但是不能方便拖拽和预览图片。 作为一个二手前端,当然是到网上找各种插件。但是能在网上上架的插件都封装得太复杂,毕竟我使用的是很简单的功能,用不上那么牛逼的插件
2017-08-21 21:31:28 2154
原创 php处理抢购类功能的高并发请求
本文以抢购、秒杀为例。介绍如何在高并发状况下确保数据正确。 在高并发请求下容易参数两个问题 1.数据出错,导致产品超卖。 2.频繁操作数据库,导致性能下降。测试环境Windows7 apache2.4.9 php5.5.12 php框架 yii2.0 工具 apache bench (apache自带高并发请求工具)。通常处理方法从控制器可以看出代码思路。先查询商品库存。如果库存大于0
2017-08-19 22:25:26 5138
原创 PHP如何在MVC模型中使用回调函数
最近发现一个很好玩的函数。array_filter($array,callable)。 这个函数需要传入一个数组和一回调函数。就可以通过回调函数来过滤数组内容。 可悲的是,在遇到这个函数前,我都是通过foreach循环一遍数组来过滤。而array_filter使用起来就简单很多。举个例子通过array_filter 返回数组中大于3的元素$array = array(1,2,3,4,5);fun
2017-08-09 22:40:41 424
原创 mac os 下Nginx+PHP环境配置
一直以来本地都在windows下使用apache进行开发。使用集成包wamp,装完即用,不亦乐乎。虽然测试环境和生产环境使用的都是nginx。但是基本上是运维在负责配置。自己装的虚拟机虽然有搭过一次,但是使用的是公司的一套集成包,install之后简单配个虚拟域名就完事了。所以这是第一次系统的自己安装nginx+php开发环境。安装Nginxnginx安装比较简单,我本机已经安装过brew。(mac
2017-08-06 23:11:04 2577
原创 mac os 下安装好Mysql后无法连接(强行修改密码)
简单描述之前安装过mysql。官网下载正常安装,正常使用。后来os推送升级,之后就无法再启动mysql服务器。无奈之下觉得重新安装一个mysql,再一次安装的时候出现了无法连接的问题。忽略的过程毕竟这篇文字并不介绍如何安装mysql。所以下面几个步骤就不详细说明。 1.卸载mysql(百度有很多卸载教程,一定要卸载干净后重新安装,避免出现更多问题。) 2.安装mysql(安装方式多种,官网下载安
2017-08-06 22:10:52 3805
原创 使用php的GD库拼接图片
本来是想用ImageMagick来实现这个功能,但是ImageMagick 的环境搭建了半天没搞定,就换成了GD库。等有时间再去研究ImageMagick吧。 为了简化业务人员的工作流程,需要在系统上开发一个小功能,用于拼接图片。原先的工作,需要业务人员通过ps去拼接一个长图。需求是省去ps的环节,业务人员只需上传图片,并制定每个图片的title。就能自动生成一张长图。 以下开发步骤,为个人开发
2017-07-30 22:56:42 5437
原创 Mysql中空字符<''>和空值<null>的区别
一直都知道mysql中空字符串(”)和空值(null)之间有区别,但是没好好研究过。直到项目上,这两个概念被我搞混了之后才想起来研究一下。 根据网上的说法,空字符串(”)是不占用空间,而空值(null)是占用空间。(这里我不太明白,因为我的理解是,字符串都会有一个结束符,这个结束符不会占用空间吗??)。 虽然有不明白的地方,但是不影响这篇文章对这两个值的分析。 为了分析区别,这里新建一张表 t
2017-06-11 22:29:38 4455 2
原创 使用Python的Requests包模拟登陆
前段时间喜欢用python去抓一些页面玩,但都基本上都是用get请求一些页面,再通过正则去过滤。 今天试了一下,模拟登陆个人网站。发现也比较简单。读懂本文需要对http协议和http会话有一定的理解。 注明:因为模拟登陆的是我的个人网站,所以以下代码对个人网站和账号密码做了处理。网站分析爬虫的必备第一步,分析目标网站。这里使用谷歌浏览器的开发者者工具分析。 通过登陆抓取,看到这样一个请求。
2017-06-07 22:48:49 19182 8
原创 python爬取彩票网站开奖号码
一直以来对python特别感兴趣,但却没有一个目标去好好学习这门语言。昨天突然有个想法,老爸喜欢买七星彩,为何不抓取每一期的开奖号码,通过邮件推送给他呢。这样他既能第一时间知道开奖号码了。 然后就动手开干,但是为什么选择python,其实用php我写得更快一些。还是因为看了点python没有机会实践,或者说懒得去实践。 本次实例安装标题,将每一个方法拆分出来说明,同时这也是开发过程中的思路。研究
2017-05-10 23:09:45 21320 6
原创 table拖动行排序
前段时间,客户反映,系统里有一部分功能需要一个排序,因为这部分数据导出的时候需要严格按照顺序来。但是一直忙于别的需求,没有取考虑这部分内容,周末的时候,客户又反映了这个问题。前端一向不好,英文也很差的我只能求助百度。之后得知jquery ui能满足这种需求。整合项目中也引入了这个js,决定试一试。前端排序不得不说jquery ui这个东西强大,只需要两行代码就能再表格上实现界面拖动。 //在tabl
2017-05-08 23:17:14 3159
原创 通过定时任务处理数据缓存
上周写了一篇文章Redis缓存与异步请求多个sql的性能问题 ,主要介绍了两种异步提交与redis缓存的性能关系。后来思考了一下,这两种缓存的方式有些愚蠢。因为数据变化机会较大。而通过数据过期的方式和强制删除数据的方式再请求,仍会造成初次请求过慢。 本文主要介绍一种缓存思路。即通过linux的crontab定时任务,每隔一段时间更新缓存数据。这样避免了每次数据过期后请求等待时间长的问题。后台代码这
2017-05-08 22:27:06 3480
原创 Redis缓存与异步请求多个sql的性能问题
项目上需求一个异步的批量sql请求。使用了两种方式,一种是一个异步提交,后台处理多个sql后返回。另一种是多个异步提交,分别处理一个sql。 下面来看两种请求的性能。单个异步提交处理多个sql ##通过谷歌的开发工具,可以看出。一个异步请求多个sql(22个)花费了将近40秒的时间。使用多个异步请求 多个异步同时请求发现,一次完整的页面请求到返回数据结束。只花费不到15秒。 原来,异步提交的时
2017-05-02 15:08:33 1130
原创 php和python请求socket服务器
一直对socket这个概念比较模糊,正好最近学习python时有socket这一章节。稍微研究了一下。我的解释不照搬概念,用我自己的理解稍微解释一下什么是socket。socket又称“套接字”,是一种通信机制。可以理解为http协议。但是socket本身不是一种协议。他用于不同应用程序间的通信。 本文使用python简单搭建一个socket服务器。通过python、php两种方式进行通信。大体上
2017-03-20 00:20:40 1812
原创 Redis的基本数据类型与适用场景
本文主要介绍redis的几种数据类型和适用场景。会列出简单例子,具体的redis函数不会一一介绍。不过这些简单的例子基本上满足80%以上的项目。
2017-01-02 19:02:15 3554 2
原创 php将数据下载到服务器压缩后上传至FTP
前面写过一篇文章,使用RESTful API以post+json的方式给服务器传数据。这种方式使用与数据量比较小的时候。当数据量过大,十几兆甚至几百兆的时候,会引发很多问题。 这篇文章主要通过文件的形式上传到FTP服务器。对方服务器再通过FTP下载的方式,获取我的数据。这种方式相比post+json相对要安全一些。而且经过zip压缩后,文件要小很多。传输的数据也大幅度减少。直接上代码public
2016-12-04 23:03:27 1071
原创 mysql下存储过程与定时器
一年前,第一次接触数据库的时候。发现项目上的一个表很神奇。当用户提交数据的时候,状态为0(表示未执行)。过了一阵子状态为1(表示正在执行),又过一阵子状态为2(表示执行成功)或者3(表示执行失败)。 第一次接触编程的小白感觉很神奇。因为神奇,就会以为特别复杂的程序。加上一直没机会研究,对这一块也一直没搞明白。 到了现在,换了公司,换了项目。需要自己去修改存储过程,才发现。这只不过是一个非常简单的
2016-12-04 21:42:13 4495 3
原创 使用RESTful API以post+json的方式给服务器传数据
思考半天,想用标题把使用到的东西都表达出来。最后还是语文不过关,没能写完整… 前段时间,出于业务需要,对方服务器希望能取我系统中的数据。我们提供了ftp上传的方式,对方觉得麻烦。要求以这种方式传数据。但是这种直接传数据的方式,如果数据量太大,会因为网速等原因,产生许多不必要的麻烦。 这里明确一下,主要是使用Curl的扩展,通过post提交json数据到另外的服务器。 本来项目中还需要一个lin
2016-12-04 00:06:34 13507
原创 爬坑系列之Yii下PDO参数化查询
上周五一整天焦头烂额,一直在坑里爬。折腾了一整天也没爬出来,到最搞得自己非常急躁。 今天突然想起这个事情,又拿出来继续爬。结果还碰上了许多问题,个人电脑没跑过yii,本机的php版本只有5.3。yii2运行必须得5.4版本以上…加上自己网速渣得不行,前后折腾了半个多小时才把环境搭好…正题 (文章结尾有结论,可以跳过正文) yii2中有一个查询自己构建sql语句查询数据库的方法findBySql
2016-09-26 00:08:31 1536
原创 yii2.0 union all 查询 如何使用
项目中需要使用到union all联合查询,查看了yii2的中文手册和百度了一下,没有说明有union all 相关的查询方法。只有简单的介绍怎么用union。又因为union会去重。 无奈查看源码,发现query.php(路径yii2\db\Query.php)中有关于union方法有两行注释:/** * Appends a SQL statement using UNION oper
2016-09-20 15:40:54 6466 1
原创 PHPExcel如何绘制普通图表、组合图表及表格优化的注意事项。
PHPExcel的强大之处就是可以让我这样不会excel程序员,也能生成好看的表格,绘制合适的图表。 本篇文章重点是如何绘制图表和组合图表。因为优化表格在网上有很多中文文档,所以这里没必要再重复。但是我会结合使用过程中产生的问题,做一些说明。表格注意事项默认设置(许多文档没有设置默认值这一配置项,这里指出一下,phpexcel有些配置是可以设置成默认的,下面是一个水平垂直居中的设置)$res
2016-09-06 12:41:20 10913 1
原创 PHP变量在内存中释放问题
$a = array('1','2','3');$b = &$a;$a = array('a','b','c');var_dump($a);var_dump($b);输出结果为array 0 => string 'a' (length=1) 1 => string 'b' (length=1) 2 => string 'c' (length=1)array 0 => stri
2016-07-31 19:56:36 2963
转载 PHP中empty方法注意事项
empty()方法是用于判断变量值是否配置,当变量未配置或者为0时返回ture,否则返回false。 注意:方法只能传入变量判断,否则将发生语法错误$a = '';$b = 0;$c = null;$d = true;$e = false;$result = empty($a);//$b $c $d $evar_dump($result);输出结果为$a = true$b = tr
2016-07-31 15:12:59 553
原创 thinkphp无法识别数据表名大小写问题
前段时间刚接触thinkphp的时候,第一次使用就出现了数据库表名大小写的问题。thinkphp默认是将所有大写改小写,并在中间加一个_符号。 今天登陆csdn的时候看到一个月前自己发的求助贴。后来自己通过修改源代码,能够正常运行了,但是时间太久忘记自己是怎么改的。这里只说解决方法,没有具体实现步骤。出错代码<?phpnamespace Home\Controller;use Think\Co
2016-01-30 00:52:12 2774 1
原创 php如果执行一个死循环及后台自动执行
前几天接到一个项目,需要做一个后台自动刷阅读量和点赞的数量。 刚接触php没多久。但是知道,一个死循环是无法执行的。 百度了一会。主要用到一下几项技术。 sleep()函数;主要是让死循环得到休息,不至于崩溃。 set_time_limit(0);设置执行最长时间,0为无限制。 ignore_user_abort(true); 关闭浏览器,服务器也能自动执行。我自己写的控制器方法太长了,这
2016-01-30 00:42:02 17893
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人