
php
文章平均质量分 58
春风不及你的笑
多学一点就能少写一点代码。
展开
-
php如果执行一个死循环及后台自动执行
前几天接到一个项目,需要做一个后台自动刷阅读量和点赞的数量。 刚接触php没多久。但是知道,一个死循环是无法执行的。 百度了一会。主要用到一下几项技术。 sleep()函数;主要是让死循环得到休息,不至于崩溃。 set_time_limit(0);设置执行最长时间,0为无限制。 ignore_user_abort(true); 关闭浏览器,服务器也能自动执行。我自己写的控制器方法太长了,这原创 2016-01-30 00:42:02 · 18074 阅读 · 0 评论 -
php处理抢购类功能的高并发请求
本文以抢购、秒杀为例。介绍如何在高并发状况下确保数据正确。 在高并发请求下容易参数两个问题 1.数据出错,导致产品超卖。 2.频繁操作数据库,导致性能下降。测试环境Windows7 apache2.4.9 php5.5.12 php框架 yii2.0 工具 apache bench (apache自带高并发请求工具)。通常处理方法从控制器可以看出代码思路。先查询商品库存。如果库存大于0原创 2017-08-19 22:25:26 · 5174 阅读 · 0 评论 -
mac os 下Nginx+PHP环境配置
一直以来本地都在windows下使用apache进行开发。使用集成包wamp,装完即用,不亦乐乎。虽然测试环境和生产环境使用的都是nginx。但是基本上是运维在负责配置。自己装的虚拟机虽然有搭过一次,但是使用的是公司的一套集成包,install之后简单配个虚拟域名就完事了。所以这是第一次系统的自己安装nginx+php开发环境。安装Nginxnginx安装比较简单,我本机已经安装过brew。(mac原创 2017-08-06 23:11:04 · 2611 阅读 · 0 评论 -
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 · 4357 阅读 · 0 评论 -
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 · 1268 阅读 · 0 评论 -
php实现无限极分类
最近在负责报表自动化管理的小功能,想从工作内容中整理点东西形成博客。但是过程中发现,这功能并没有代码实现上的难点。基本上值得说的地方,也就定时任务的合理设计,而定时任务之前有相关的博文。再有就是,开发思路和数据库合理的设计。这部分也不好形成文章。 但是好久没有写博客,希望能坚持下来。想起之前写过几个递归,干脆就整理一篇简单的无限极分类。 无限极分类,其实也就是一个递归算法。合理的利用递归确实能节原创 2017-09-10 22:41:42 · 471 阅读 · 0 评论 -
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 · 452 阅读 · 0 评论 -
PHPExcel简介
专栏前言在程序中开发excel,已经有一年的时间。后续可能会比较少去研究这一块的内容。所以申请了一个专栏,也是为了能够对前段时间在这方面的学习做一个总结。 那么在excel在一块的研究达到一个什么样的水平?可以说,目前只要能提供excel模板,就能按照模板的格式、样式生产一模一样的excel。所以,想在这一块研究的朋友,这个专栏绝对是有帮助的。 专栏前后会围绕一个开源插件——PHPExce...原创 2018-03-24 22:52:54 · 410 阅读 · 1 评论 -
PHP生成Excel之表格(一)
文章使用phpexcel提供的操作方法,生成excel文件。Excel目标我们将要生成的excel最终效果如下图显示。 代码演示public static function ExportExcel($data,$filename=''){ $data; //数据数组(三维数组) $filename=empty($filename)?"":$filena...原创 2018-03-25 21:56:03 · 7659 阅读 · 0 评论 -
PHP生成Excel之表格(二)
php使用phpexcel提供的操作方法,生成excel。遇到的问题上一篇文章中PHP生成Excel之表格(一),给出了常规情况下使用phpexcel来生成excel的方法。但是这种方法很麻烦,还需要翻文档查看很多方法。而且生成的样式也不是最完美的。那么这篇文章,我们就思考如何解决这个,既繁琐又不完美的生成方式。思考之前结束phpexcel这个插件时,有说到。除了能读取excel、...原创 2018-03-27 22:20:38 · 1014 阅读 · 1 评论 -
swoole的socket实现聊天功能
前言贵有恒,何必三更起五更睡;最无益,只怕一日暴十寒。偶然打开优快云,忽然发现距离上一篇文章整整过去了一年。感慨时间过去飞快。这一年忙忙碌碌,但又没什么变化。一周一篇文章的约定,不知从哪天的忙碌开始抛到脑后。裸辞后,休息了一个月,最近开始整理知识点。突然想起来要记录。那就坚持吧。不知道能坚持几天,但有开始总是好的。实现思路实现socket服务器。能连接、接受消息并作出回应、中断退出。...原创 2019-04-07 01:15:41 · 2922 阅读 · 0 评论 -
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 · 441 阅读 · 0 评论 -
使用php的GD库拼接图片
本来是想用ImageMagick来实现这个功能,但是ImageMagick 的环境搭建了半天没搞定,就换成了GD库。等有时间再去研究ImageMagick吧。 为了简化业务人员的工作流程,需要在系统上开发一个小功能,用于拼接图片。原先的工作,需要业务人员通过ps去拼接一个长图。需求是省去ps的环节,业务人员只需上传图片,并制定每个图片的title。就能自动生成一张长图。 以下开发步骤,为个人开发原创 2017-07-30 22:56:42 · 5476 阅读 · 0 评论 -
table拖动行排序
前段时间,客户反映,系统里有一部分功能需要一个排序,因为这部分数据导出的时候需要严格按照顺序来。但是一直忙于别的需求,没有取考虑这部分内容,周末的时候,客户又反映了这个问题。前端一向不好,英文也很差的我只能求助百度。之后得知jquery ui能满足这种需求。整合项目中也引入了这个js,决定试一试。前端排序不得不说jquery ui这个东西强大,只需要两行代码就能再表格上实现界面拖动。 //在tabl原创 2017-05-08 23:17:14 · 3184 阅读 · 0 评论 -
thinkphp无法识别数据表名大小写问题
前段时间刚接触thinkphp的时候,第一次使用就出现了数据库表名大小写的问题。thinkphp默认是将所有大写改小写,并在中间加一个_符号。 今天登陆csdn的时候看到一个月前自己发的求助贴。后来自己通过修改源代码,能够正常运行了,但是时间太久忘记自己是怎么改的。这里只说解决方法,没有具体实现步骤。出错代码<?phpnamespace Home\Controller;use Think\Co原创 2016-01-30 00:52:12 · 2808 阅读 · 1 评论 -
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 · 581 阅读 · 0 评论 -
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 · 2991 阅读 · 0 评论 -
PHPExcel如何绘制普通图表、组合图表及表格优化的注意事项。
PHPExcel的强大之处就是可以让我这样不会excel程序员,也能生成好看的表格,绘制合适的图表。 本篇文章重点是如何绘制图表和组合图表。因为优化表格在网上有很多中文文档,所以这里没必要再重复。但是我会结合使用过程中产生的问题,做一些说明。表格注意事项默认设置(许多文档没有设置默认值这一配置项,这里指出一下,phpexcel有些配置是可以设置成默认的,下面是一个水平垂直居中的设置)$res原创 2016-09-06 12:41:20 · 10992 阅读 · 1 评论 -
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 · 6545 阅读 · 1 评论 -
爬坑系列之Yii下PDO参数化查询
上周五一整天焦头烂额,一直在坑里爬。折腾了一整天也没爬出来,到最搞得自己非常急躁。 今天突然想起这个事情,又拿出来继续爬。结果还碰上了许多问题,个人电脑没跑过yii,本机的php版本只有5.3。yii2运行必须得5.4版本以上…加上自己网速渣得不行,前后折腾了半个多小时才把环境搭好…正题 (文章结尾有结论,可以跳过正文) yii2中有一个查询自己构建sql语句查询数据库的方法findBySql原创 2016-09-26 00:08:31 · 1572 阅读 · 0 评论 -
使用RESTful API以post+json的方式给服务器传数据
思考半天,想用标题把使用到的东西都表达出来。最后还是语文不过关,没能写完整… 前段时间,出于业务需要,对方服务器希望能取我系统中的数据。我们提供了ftp上传的方式,对方觉得麻烦。要求以这种方式传数据。但是这种直接传数据的方式,如果数据量太大,会因为网速等原因,产生许多不必要的麻烦。 这里明确一下,主要是使用Curl的扩展,通过post提交json数据到另外的服务器。 本来项目中还需要一个lin原创 2016-12-04 00:06:34 · 13588 阅读 · 0 评论 -
php将数据下载到服务器压缩后上传至FTP
前面写过一篇文章,使用RESTful API以post+json的方式给服务器传数据。这种方式使用与数据量比较小的时候。当数据量过大,十几兆甚至几百兆的时候,会引发很多问题。 这篇文章主要通过文件的形式上传到FTP服务器。对方服务器再通过FTP下载的方式,获取我的数据。这种方式相比post+json相对要安全一些。而且经过zip压缩后,文件要小很多。传输的数据也大幅度减少。直接上代码public原创 2016-12-04 23:03:27 · 1089 阅读 · 0 评论 -
php和python请求socket服务器
一直对socket这个概念比较模糊,正好最近学习python时有socket这一章节。稍微研究了一下。我的解释不照搬概念,用我自己的理解稍微解释一下什么是socket。socket又称“套接字”,是一种通信机制。可以理解为http协议。但是socket本身不是一种协议。他用于不同应用程序间的通信。 本文使用python简单搭建一个socket服务器。通过python、php两种方式进行通信。大体上原创 2017-03-20 00:20:40 · 1833 阅读 · 0 评论 -
通过定时任务处理数据缓存
上周写了一篇文章Redis缓存与异步请求多个sql的性能问题 ,主要介绍了两种异步提交与redis缓存的性能关系。后来思考了一下,这两种缓存的方式有些愚蠢。因为数据变化机会较大。而通过数据过期的方式和强制删除数据的方式再请求,仍会造成初次请求过慢。 本文主要介绍一种缓存思路。即通过linux的crontab定时任务,每隔一段时间更新缓存数据。这样避免了每次数据过期后请求等待时间长的问题。后台代码这原创 2017-05-08 22:27:06 · 3502 阅读 · 0 评论 -
php中RabbitMQ的使用实例
最近在学习队列的使用。主要是在做一个简单的应用架构。 方便对mq的调用。然后说一些自己学习的见解。文章主要讨论以下问题。什么是消息队列rabbitmq的整体结构exchange类型针对direct 类型写一个实例主要还是做一个实例。 rmq的搭建、介绍网上文章很多。就没必要拿出来说明。 文章图片均来自网络。什么是队列消息队列(Message Queue)是一种应用间的通信方式,...原创 2019-04-09 03:05:07 · 2444 阅读 · 0 评论