
php
文章平均质量分 60
狂奔的蜗牛zy
非淡泊无以明志,非宁静无以致远
展开
-
guzzle请求重试
Guzzle是一个PHP的HTTP客户端,可以发送同步或异步的请求,中间件系统允许你创建构成客户端行为。在网络不稳定或者其他一些原因导致会偶现请求失败的情况,所以就需要根据一定规则进行请求重试而本文中请求重试就是利用中间件系统实现的。使用php的trait特性use GuzzleHttp\Client;use GuzzleHttp\Psr7\Request;use GuzzleHttp...原创 2020-04-25 14:28:59 · 2470 阅读 · 3 评论 -
滑动窗口实现访问频率限制
滑动窗口实现访问频率限制使用redis的有序集合实现滑动窗口,从而实现对访问频率的限制思路一思路二使用redis的有序集合实现滑动窗口,从而实现对访问频率的限制主要思路有两个思路一以时间戳为有序集合的成员每次请求,先使用ZREMRANGEBYLEX命令移除窗口外的成员使用ZRANGE命令获取有序集合的成员和相应权重使用ZINCRBY命令对相应的成员的权重加一使用EXPIRE命令重...原创 2020-04-18 18:14:37 · 1203 阅读 · 4 评论 -
关于htmlspecialchars抛出warning解决方案,phpoffice/phpspreadsheet导出xlsx提示格式不正确
最近项目中要导出excel,于是使用了phpoffice/phpspreadsheet,但当导出xlsx格式时抛出warning:PHP Warning: htmlentities(): charset `gbk' not supported, assuming utf-8 in ...导致导出的xlsx无法打开,提示格式不正确,因为这些warning随着ob缓冲区写入了文件。虽然项目是...原创 2019-07-10 16:25:12 · 965 阅读 · 0 评论 -
php hash碰撞攻击与防御
一、前言hash碰撞攻击就是构造恶意的数据是hash表退化为链表,每次插入数据都会遍历链表,消耗大量服务器资源,从而达到攻击目的。php的数组就是利用hash表实现的,对于碰撞的数据,php采用双向链表解决方案,所以可以利用PHP的数组进行hash碰撞攻击。二、模拟攻击很多接口都采用json数据格式来传输,通常php都会使用php:input获得数据流,然后使用json_decode解析js...原创 2018-12-01 17:56:49 · 1403 阅读 · 0 评论 -
短信防刷机制设计
短信验证码可以验证手机号的有效性,短信验证应用的地方越来越多,写这篇博文的原因是因为最近我司最近弄了个H5活动,有个发送短信验证码的功能由于java组没做防刷机制导致短信被刷。而他们的解决办法令我匪夷所思,因为根本起不到作用。所以想写一篇关于防刷的博文。短信被刷也算网络攻击的一种,网络攻防一直是相爱相杀的存在。没有绝对的防御,只有不断增强防御,提高攻击者的攻击成本,使其攻击成本高于收益,从而放弃...原创 2018-11-24 17:03:29 · 2944 阅读 · 2 评论 -
封装php分页类
最近在用phalcon写一个支持多国语言的cms,不太喜欢phalcon的分页,所以自己写了个分页工具类。 该分页类支持自动获取解析url,还支持高度自定义 例如:自定义分页参数名自定义选中页、禁用页的class值自定义首页、上一页、左边页、当前页、右边页、下一页、后缀自定义各按钮位置自定义左边或右边显示按钮个数自定义替换规则自定义是否显示无效按钮(首页、上一页、下一页、尾页...原创 2018-07-21 23:53:25 · 4143 阅读 · 1 评论 -
安装php的redis扩展
安装PHP的redis扩展会用到一些编译工具,我在安装lnmp的时候就安装好了,这里不再安装,直接俺咋混个redis。一、安装1、下载redis[root@localhost ~]# cd /var/local[root@localhost local]# wget http://pecl.php.net/get/redis-4.1.0RC3.tgz2、解压及安装...原创 2018-07-03 23:38:46 · 428 阅读 · 0 评论 -
php实现进度条
php实现进度条主要有两种方式,一种是利用“输出缓冲控制”直接输出进度条,还有一种是ajax方式首先说一下“输出缓冲控制”方式:该方式主要利用php的几个缓冲函数,该方式可以不用更改配置文件,直接运行即可,下面贴出代码:<?phpset_time_limit(0); //设置程序执行时间ignore_user_abort(true); //设置断开连接继续执行...原创 2017-11-15 19:06:23 · 8833 阅读 · 0 评论 -
php微信上传图片之人脸识别
人脸识别是调用http://apicn.faceplusplus.com中的接口info.html中的js代码//引入<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script><script>wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert原创 2017-04-08 11:27:53 · 1840 阅读 · 0 评论 -
PHP遍历删除目录和目录下所有文件
代码function del_dir($dir) { if (!is_dir($dir)) { return false; } $handle = opendir($dir); while (($file = readdir($handle)) !== false) { if ($file != "." && $file != ".."原创 2017-02-22 19:23:48 · 3987 阅读 · 0 评论 -
PHP生成验证码
要使用jpgraph类库代码<?phpsession_start();header("content-type:image/png"); //设置创建图像的格式$image_width=70; //设置图像宽度$image_height=18; //设置图像高度srand(microtime()*100000)原创 2017-02-22 19:29:05 · 568 阅读 · 0 评论