php
文章平均质量分 66
Mosan_
这个作者很懒,什么都没留下…
展开
-
php结合redis实现高并发下的抢购、秒杀功能的实例
抢购、秒杀是如今很常见的一个应用场景,主要需要解决的问题有两个:1 高并发对数据库产生的压力2 竞争状态下如何解决库存的正确减少("超卖"问题)对于第一个问题,已经很容易想到用缓存来处理抢购,避免直接操作数据库,例如使用Redis。重点在于第二个问题常规写法:查询出对应商品的库存,看是否大于0,然后执行生成订单等操作,但是在判断库存是否大于0处,如果在高并发下就会有问题,导致库存量出现负数1234...转载 2018-03-23 09:17:23 · 259 阅读 · 0 评论 -
php防止恶意刷新与刷票的方法
一般来说,恶意刷新就是不停的去刷新提交页面,导致出现大量无效数据,下面我们来总结一下php 防止恶意刷新页面方法总结。防止恶意刷页面的原理是:要求在页面间传递一个验证字符串, 在生成页面的时候 随机产生一个字符串, 做为一个必须参数在所有连接中传递。同时将这个字符串保存在session中。点连接或者表单进入页面后,判断session中的验证码是不是与用户提交的相同,如果相同,则处理,不相同则认为是...转载 2018-07-15 21:43:51 · 2205 阅读 · 0 评论 -
php实现ip防盗刷
代码如下:<?php //查询禁止IP $ip =$_SERVER['REMOTE_ADDR']; $fileht=".htaccess2"; if(!file_exists($fileht))file_put_contents($fileht,""); $filehtarr=@file($fileht); if(in_array($ip."\r\n",$filehtarr))die("Wa...转载 2018-07-15 18:32:20 · 817 阅读 · 0 评论 -
树应用实现-无限极分类(引用&递归)
$items = array( 1 => array('id' => 1, 'pid' => 0, 'name' => '江西省'), 2 => array('id' => 2, 'pid' => 0, 'name' => '黑龙江省'), 3 => array('id' => 3, 'pid' => 1, ...转载 2018-07-15 16:04:38 · 861 阅读 · 1 评论 -
php简单防盗链处理
有时我们希望访问我们网站的用户只能通过特定的链接或页面进入我们的网站页面,此时就需要实现防盗链技术。这就用到了http协议中的referer内容过滤。 例如在我们本地有一个网页,路径为:http://localhost/http/fdl_one.php,内容如下:<a href="fdl_two.php">click here to see more</a> ...原创 2018-07-03 23:13:19 · 3175 阅读 · 0 评论 -
mysql百万级数据查询优化
1.两种查询引擎查询速度(myIsam 引擎 )InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行。MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作有些不同,InnoDB类型的表用count(*)或者count(主键),加上where c...原创 2018-06-27 17:19:32 · 37135 阅读 · 7 评论 -
GET POST区别
GET在浏览器回退时是无害的,而POST会再次提交请求。GET产生的URL地址可以被Bookmark,而POST不可以。GET请求会被浏览器主动cache,而POST不会,除非手动设置。GET请求只能进行url编码,而POST支持多种编码方式。GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。GET请求在URL中传送的参数是有长度限制的,而POST么有。对参数的数据类型,...转载 2018-06-20 16:37:08 · 131 阅读 · 0 评论 -
php实现网站监控--web安全
linux下网站状态监控实现(免费手机短信和MSN消息提醒) 参考了张宴的《Linux服务器系统监控框架与MSN、E-mail、手机短信报警的实现》并结合飞信的免费短信接口为服务器做了个监控脚本,在监控端服务器(公司内部服务器)部署完之后,每隔5分钟检测一次网站是否能正常访问,如果有异常则通过飞信免费发送警报短信到指定手机或者MSN上。首先需要有一个已开通飞信的手机号,并把接收警报短信的手...转载 2018-06-19 13:16:03 · 3346 阅读 · 0 评论 -
php垃圾回收机制
php中变量存在于一个zval(新开辟的内存区域)的变量容器中。结构如下: 类型值is_refrefcount zval中,除了存储变量的类型和值之外,还有is_ref字段和refcount字段。is_ref:是个bool值,用来区分变量是否属于引用集合。什么意思呢,你可以这么认为:表示变量是否有一个以上的别名。 refcount:计数器,表示指向这个zval变量容器的变量个数。 两者之间有这...转载 2018-06-13 09:48:36 · 164 阅读 · 0 评论 -
php数组根据某字段重新排序
$arrUsers = array( array( 'id' => 1, 'name' => '张三', 'age' => 25, ), array( 'id' => 2, 'name' => '...转载 2018-06-11 14:27:52 · 3972 阅读 · 0 评论 -
php利用中间件完善事务--
我说的事务指的是一般的数据库事务,而不是什么分布式事务之类高大上的概念。听起来很简单,但是即便如此,想实现的优雅一点也不是一件容易的事情。假设有一个 QA 系统,当用户在上面提问的时候,系统保存问题,然后更新用户的提问数,最后触发一个问题已经被创建的异步事件来解耦逻辑(代码均使用 Lumen 框架):<?phptry { DB::beginTransaction(); $ques...转载 2018-04-27 14:44:07 · 631 阅读 · 0 评论 -
php表单防止重复提交(防csrf漏洞)
Token浅谈Token,就是令牌,最大的特点就是随机性,不可预测。一般黑客或软件无法猜测出来。那么,Token有什么作用?又是什么原理呢?Token一般用在两个地方——防止表单重复提交、anti csrf攻击(跨站点请求伪造)。两者在原理上都是通过session token来实现的。当客户端请求页面时,服务器会生成一个随机数Token,并且将Token放置到session当中,然后将Token发...原创 2018-04-19 16:12:54 · 659 阅读 · 0 评论 -
nginx优化--提高并发效率
一、一般来说nginx 配置文件中对优化比较有作用的为以下几项:1. worker_processes 8;nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cpu计为8)。2. worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;为每个...原创 2018-04-23 09:08:48 · 3002 阅读 · 0 评论 -
php关于时间的处理
1.获取上个月第一天及最后一天. echo date('Y-m-01', strtotime('-1 month')); echo "<br/>"; echo date('Y-m-t', strtotime('-1 month')); echo "<br/>"; 上面的方法有些问题,根据bg5hfc回复做下修改 上个月第一天: echo date('Y-...转载 2018-04-12 09:00:13 · 205 阅读 · 0 评论 -
php匹配时间格式
php+mysql一般情况下存储时间都为时间戳,但实际需要的时候,我们很可能需要对时间进行修改,这就需要由时间戳转换到时间格式,再时间格式转换为时间戳,而php需要一定的时间格式才能转换成时间戳(表示从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数),因此需要进行正则判断下面贴出代码:<?php//匹配时间格式为2012-02-16或2012-02-16 23:59:...转载 2018-04-08 16:14:45 · 1091 阅读 · 0 评论 -
php中websocket内容
在PHP中,开发者需要考虑的东西比较多,从socket的连接、建立、绑定、监听等都需要开发者自己去操作完成,对于初学者来说,难度方面也挺大的,所以本文的思路如下:1、socket协议的简介2、介绍client与server之间的连接原理3、PHP中建立socket的过程讲解4、用一个聊天室作为实例详细讲解在PHP中如何使用socket一、socket协议的简介 WebSo...转载 2018-07-23 09:09:58 · 504 阅读 · 0 评论