<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[阿洛的笔记]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Peter_Zhao_Feng</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Peter_Zhao_Feng]]></copyright><item><title><![CDATA[PHP多线程模拟秒杀抢单]]></title><link>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/52597816</link><guid>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/52597816</guid><author>Peter_Zhao_Feng</author><pubDate>Tue, 20 Sep 2016 17:06:02 +0800</pubDate><description><![CDATA[应集团要求给服务号做了个抢单秒杀的功能，需要对秒杀做个测试，想试试 PHP 多线程，就模拟了下抢单功能。先说秒杀模块的思路：正常情况下的用户秒杀操作
1、发起秒杀请求
2、进入秒杀队列
3、随机滞后 1 - 2 秒进行秒杀结果查询请求（算是变相分流吧）
4、成功则生成订单
5、返回结果以下是模拟秒杀的代码：<?php
set_time_limit(0);/**
* 线程的执行任务
*/
class]]></description><category></category></item><item><title><![CDATA[工作一本通]]></title><link>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/52492219</link><guid>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/52492219</guid><author>Peter_Zhao_Feng</author><pubDate>Sat, 10 Sep 2016 01:19:07 +0800</pubDate><description><![CDATA[亲爱的，我觉得思想见著于文字才可以充分表达，所以我想通过写点东西，来阐述下我的见解。希望对你在选择第一份工作上能略微的有些帮助。应届生找工作是一件重要但不急迫的事情，请你慢下来，不要着急。用一句话来总结的话就是：战略上重视，战术上藐视。有点奇怪是不是？其实我觉得但凡重大的选择，都应该依据这个准则来执行。具体说来就是在思想上要高度重视，但不可着急、慌张，要立定脚跟，步步为营，稳扎稳打。心静则智生心乱则]]></description><category></category></item><item><title><![CDATA[LNMP 环境配置]]></title><link>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/52489411</link><guid>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/52489411</guid><author>Peter_Zhao_Feng</author><pubDate>Fri, 09 Sep 2016 17:35:00 +0800</pubDate><description><![CDATA[前言 
      公司有几台阿里的云服务器到期，暂时不打算续费，要拿出一台数据库服务器放置这些服务，运维人员前段时间被裁员，只好让我来顶上了。三流开发，不入流运维记。
nginx 安装1、下载wget http://nginx.org/download/nginx-1.8.1.tar.gz2、解压tar zxvf nginx-1.8.1.tar.gz3、配置信息./configure --pref]]></description><category></category></item><item><title><![CDATA[深入理解 Session 与 Cookie]]></title><link>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/52398131</link><guid>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/52398131</guid><author>Peter_Zhao_Feng</author><pubDate>Thu, 01 Sep 2016 12:13:32 +0800</pubDate><description><![CDATA[摘要 
  Session 与 Cookie 不管是对 Java Web 
  的初学者还是熟练使用者来说都是一个令人头疼的问题。在初入职场时恐怕很多程序员在面试的时候都被问到过这个问题。其实这个问题回答起来既简单又复杂，简单是因为它们本身只是 
  HTTP 协议中的一个配置项，在 Servlet 规范中也只是对应到一个类而已；说它复杂原因在于当我们的系统大到需要用到很多 Cookie 
  的时]]></description><category></category></item><item><title><![CDATA[使用渐进式JPEG来提升用户体验]]></title><link>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/52397789</link><guid>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/52397789</guid><author>Peter_Zhao_Feng</author><pubDate>Thu, 01 Sep 2016 11:37:23 +0800</pubDate><description><![CDATA[今天才认识到原来JPEG文件有两种保存方式他们分别是Baseline JPEG（标准型）和Progressive JPEG（渐进式）。两种格式有相同尺寸以及图像数据，他们的扩展名也是相同的，唯一的区别是二者显示的方式不同。
Baseline JPEG
这种类型的JPEG文件存储方式是按从上到下的扫描方式，把每一行顺序的保存在JPEG文件中。打开这个文件显示它的内容时，数据将按照存储时的顺序从上]]></description><category></category></item><item><title><![CDATA[HTTP 协议]]></title><link>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/51016320</link><guid>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/51016320</guid><author>Peter_Zhao_Feng</author><pubDate>Wed, 30 Mar 2016 16:44:53 +0800</pubDate><description><![CDATA[一本 HTTP 协议详解，看起来挺无聊的，抓个包看看。 
其实，处在网络传输上层的 HTTP 协议，还是很接近自然语言的。没事抓个包就可以入门了。推荐一个抓包工具：Fiddler附上云盘地址：http://pan.baidu.com/s/1jICQMd4]]></description><category></category></item><item><title><![CDATA[拉链表]]></title><link>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/50736247</link><guid>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/50736247</guid><author>Peter_Zhao_Feng</author><pubDate>Thu, 25 Feb 2016 11:11:32 +0800</pubDate><description><![CDATA[在数据仓库的数据模型设计过程中，经常会遇到这样的需求：
数据量比较大;
表中的部分字段会被update,如用户的地址，产品的描述信息，订单的状态等等;
需要查看某一个时间点或者时间段的历史快照信息，比如，查看某一个订单在历史某一个时间点的状态， 
比如，查看某一个用户在过去某一段时间内，更新过几次等等;
变化的比例和频率不是很大，比如，总共有1000万的会员，每天新增和发生变化的有10万左右;
如果]]></description><category></category></item><item><title><![CDATA[匆匆--朱自清]]></title><link>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/50532726</link><guid>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/50532726</guid><author>Peter_Zhao_Feng</author><pubDate>Sun, 17 Jan 2016 17:17:35 +0800</pubDate><description><![CDATA[燕子去了，有再来的时候；杨柳枯了，有再青的时候；桃花谢了，有再开的时候。但是，聪明的，你告诉我，我们的日子为什么一去不复返呢？——是有人偷了他们罢：那是谁？又藏在何处呢？是他们自己逃走了罢：现在又到了哪里呢？去的尽管去了，来的尽管来着；去来的中间，又怎样地匆匆呢？早上我起来的时候，小屋里射进两三方斜斜的太阳。太阳他有脚啊，轻轻悄悄地挪移了；我也茫茫然跟着旋转。于是——洗手的时候，日子从水盆里过去；吃]]></description><category></category></item><item><title><![CDATA[Jquery 中 $('obj').attr('checked',true)失效的几种解决方案]]></title><link>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/50147471</link><guid>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/50147471</guid><author>Peter_Zhao_Feng</author><pubDate>Wed, 02 Dec 2015 14:04:23 +0800</pubDate><description><![CDATA[1：$('obj').prop('checked',true)2：$(':checkbox').each(function(){    this.checked=true;});
  attr为失效？因为checked属于为原型对象的属性。而attr在remove原型对象时会出错。原型对象指的是自身自带的，无法移除。prop会忽略这个错误。而attr操作的是普通非原型对象（可移除）。js 的dom对]]></description><category></category></item><item><title><![CDATA[Linux 解压命令大全]]></title><link>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/49510741</link><guid>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/49510741</guid><author>Peter_Zhao_Feng</author><pubDate>Fri, 30 Oct 2015 13:57:39 +0800</pubDate><description><![CDATA[.tar 
解包：tar xvf FileName.tar 
打包：tar cvf FileName.tar DirName 
（注：tar是打包，不是压缩！） 
——————————————— 
.gz 
解压1：gunzip FileName.gz 
解压2：gzip -d FileName.gz 
压缩：gzip FileName.tar.gz 和 .tgz 
解压：tar zxvf File]]></description><category></category></item><item><title><![CDATA[linux安装配置PHP环境]]></title><link>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/49510639</link><guid>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/49510639</guid><author>Peter_Zhao_Feng</author><pubDate>Fri, 30 Oct 2015 13:52:16 +0800</pubDate><description><![CDATA[附原文地址：传送门 
对于没有接触过 Linux 系统的人来说，在配置 PHP 环境上是比较头疼的。以下是别人的文章，在这里复制一份。参考别人的做法,遇到问题上网查,下面就是安装步骤. 
一、安装Apache2.2.22 
1、到官网下载  http://httpd.apache.org/download.cgi 
2、解压 
    tar  -zxvf httpd-2.2.22.tar.gz]]></description><category></category></item><item><title><![CDATA[PHP反射]]></title><link>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/49155701</link><guid>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/49155701</guid><author>Peter_Zhao_Feng</author><pubDate>Thu, 15 Oct 2015 17:44:02 +0800</pubDate><description><![CDATA[利用 PHP 的反射 API 可以很方便的得到指定对象所属的类结构，没有参考文档的时候可以很方便的探寻类的信息。另外还可以利用反射实现插件功能、生成代码文档。   OK！以上内容背完了，其实作为小白的我根本没用过。
先上传送门 
但是，作为一个有探索精神的有志青年（diao si qing nian），尝试写了一小段利用反射描述类结构的代码！先记着，用的时候来翻翻…………..（一直不用会忘的，哎！已]]></description><category></category></item><item><title><![CDATA[PHP实现多继承的效果（tarits）]]></title><link>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/49149439</link><guid>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/49149439</guid><author>Peter_Zhao_Feng</author><pubDate>Thu, 15 Oct 2015 10:42:11 +0800</pubDate><description><![CDATA[多继承里一个类可以同时继承多个父类，组合多个父类的功能 C++ 里就是使用这种模型来增强集成的灵活性的，但多重继承过于灵活，并且会带来“菱形继承”，故使用起来有不少困难，模型变的复杂起来，现在大多数语言都放弃了多重继承这一模型。 
    但有的场合想用多继承，但PHP又没多继承，于是就发明了这样的一个东西。 
    Traits可以理解为一组能被不同的类都能调用到的方法集合，但Traits不是类]]></description><category></category></item><item><title><![CDATA[PHP: pack/unpack补遗]]></title><link>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/49022487</link><guid>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/49022487</guid><author>Peter_Zhao_Feng</author><pubDate>Sat, 10 Oct 2015 12:56:11 +0800</pubDate><description><![CDATA[pack/unpack的介绍和使用加上这篇就第三篇了。确实知识点比较多，这篇算是收尾之作吧。仔细去文档上看pack/unpack的格式化字符说明，就会发现s, S, i, I, l, L, f, d都没有对应的大端序和小端序的格式化字符，所以有需要的时候必须自己实现。这个真不知道PHP开发项目组是怎么想的！而且确实有人在stackoverflow上这么问了，详见：php-pack-format-fo]]></description><category></category></item><item><title><![CDATA[PHP: chr和pack、unpack那些事]]></title><link>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/49022475</link><guid>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/49022475</guid><author>Peter_Zhao_Feng</author><pubDate>Sat, 10 Oct 2015 12:54:05 +0800</pubDate><description><![CDATA[首先郑重感谢陈亦老师。关于使用 TCP 协议来传输数据的资料不是很多，好不容易找到一篇完美的介绍，帮助我完成任务。故特此感谢！传送门 
PHP是一门很灵活的语言。正因为它太灵活了，甚至有些怪异，所以大家对它的评价褒贬不一。其实我想说的是，任何一门语言都有它自身的哲学，有它存在的出发点。PHP为Web而生，它以快速上手、快速开发而著称，所以它也常被冠以简单、新手用的语言等标签。我倒不这么认为，所谓选对]]></description><category></category></item><item><title><![CDATA[MongoDB中关于64位整型存储解决方案]]></title><link>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/49022359</link><guid>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/49022359</guid><author>Peter_Zhao_Feng</author><pubDate>Sat, 10 Oct 2015 12:33:38 +0800</pubDate><description><![CDATA[原文地址：传送门  。 
  感谢D哥的奉献，拷贝一份方便查看。 
   在我当前项目中大量是MongoDB,正在从传统RDBMS过度到key-value存储。Facebook中用户标识UserID使用64位Int数据类型存储，杯具的是 MongoDB的PHP驱动只支持32位整型数据，导致UserID被截断无法处理Facebook用户信息。MongoDB数据采用BSON(Binary JSON)文档]]></description><category></category></item><item><title><![CDATA[TCP 传输文件----深入pack/unpack]]></title><link>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/48371587</link><guid>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/48371587</guid><author>Peter_Zhao_Feng</author><pubDate>Fri, 11 Sep 2015 13:29:54 +0800</pubDate><description><![CDATA[首先郑重感谢**陈亦**老师。关于使用 TCP 协议来传输数据的资料不是很多，好不容易找到一篇完美的介绍，帮助我完成任务。故特此感谢！[原文](http://my.oschina.net/goal/blog/195749)
写在前面的话本文介绍的是通过二进制数据包的方式通信，演示语言为PHP和Golang。PHP提供了pack/unpack函数来进行二进制打包和二进制解包。在具体讲解之前，我们先来了]]></description><category></category></item><item><title><![CDATA[ThinkPHP 解析访问路径的坑]]></title><link>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/48002299</link><guid>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/48002299</guid><author>Peter_Zhao_Feng</author><pubDate>Wed, 26 Aug 2015 13:48:20 +0800</pubDate><description><![CDATA[首先我得检讨：因为我的懒惰以及命名的不规范，踩到这个坑。 
  对于特殊需求你得单独想一个独特的命名而不能乱起名字。
使用 AJAX 以 POST 方式提交参数 a : “10001” 到 http://localhost/market/index.php/home/resource/searchGroup报错非法操作 10001。很奇怪是吧。通过翻看 ThinkPHP 的源码找到问题所在Think]]></description><category></category></item><item><title><![CDATA[SQLSTATE[42000]: Syntax error or access violation: 1055 'kf_local.g.group_name' isn't in GROUP BY]]></title><link>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/47999703</link><guid>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/47999703</guid><author>Peter_Zhao_Feng</author><pubDate>Wed, 26 Aug 2015 10:31:15 +0800</pubDate><description><![CDATA[这是 ThinPHP 中的一段取数据的代码：$result = $this->field('g.group_code,g.group_name,count(m.member_code) AS member_num,c.company_name,u.user_uid')
                       ->alias('g')
                       ->join(]]></description><category></category></item><item><title><![CDATA[使用 cURL 进行 HTTP 请求实例]]></title><link>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/47951647</link><guid>https://blog.youkuaiyun.com/Peter_Zhao_Feng/article/details/47951647</guid><author>Peter_Zhao_Feng</author><pubDate>Mon, 24 Aug 2015 15:23:02 +0800</pubDate><description><![CDATA[先看一段发送 HTTP 请求的代码/*
*   发送 Http 请求
*   @param(url,data)=>
*   @return(array(state_code,content)),type_are->"array(int,string)"
*/
function send_http_post($urlcon, $data) {
    $url = $urlcon;
    $data]]></description><category></category></item></channel></rss>