<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Limitless1113的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Limitless1113</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Limitless1113]]></copyright><item><title><![CDATA[Mysql的全文索引为什么不支持中文]]></title><link>https://blog.youkuaiyun.com/Limitless1113/article/details/48469323</link><guid>https://blog.youkuaiyun.com/Limitless1113/article/details/48469323</guid><author>Limitless1113</author><pubDate>Tue, 15 Sep 2015 16:22:29 +0800</pubDate><description><![CDATA[Mysql的全文索引是根据英文的特点来开发，英文“this is my mysql database”，英文可以根据空格和标点符号去分开每个单词，然后统计单词的位置，生成索引树；
然而中文却没有这种特点，只能利用sphinx或者lucence去利用词库，匹配出关键词，然后构建索引树，通过关键词索引树可以直接获取到数据的Id，然后用id去数据库进行查询，直接命中数据库的索引，提升查询效率，而且第三]]></description><category></category></item><item><title><![CDATA[关于静态方法不能调用类中的非静态属性的理解]]></title><link>https://blog.youkuaiyun.com/Limitless1113/article/details/47952237</link><guid>https://blog.youkuaiyun.com/Limitless1113/article/details/47952237</guid><author>Limitless1113</author><pubDate>Mon, 24 Aug 2015 15:52:58 +0800</pubDate><description><![CDATA[class test{
	public $a;
	public function game(){
		echo "123";
	}
	public static function name(){
		//$this->a=new test();错误的写法，
		//静态方法在类加载的时候就加载进内存，此时$this的对象还没有生成
		//所以报错
		$this->a=new test();]]></description><category></category></item><item><title><![CDATA[PHP设计模式之装饰模式]]></title><link>https://blog.youkuaiyun.com/Limitless1113/article/details/47781469</link><guid>https://blog.youkuaiyun.com/Limitless1113/article/details/47781469</guid><author>Limitless1113</author><pubDate>Wed, 19 Aug 2015 15:33:25 +0800</pubDate><description><![CDATA[本文知识来源于：《深入PHP面向对象、模式和实践》一书
<?php
/*
Title:装饰模式
Detail:平原、污染、钻石对象的独立和组合。
*/
abstract class Tile{
	abstract function getWealthFactor();
}

//平原类，wealthfactor为财富值
class Plains extends Tile{
	private $w]]></description><category></category></item><item><title><![CDATA[个人猜想的web安全——理解PHP的sessionID的实现]]></title><link>https://blog.youkuaiyun.com/Limitless1113/article/details/47306613</link><guid>https://blog.youkuaiyun.com/Limitless1113/article/details/47306613</guid><author>Limitless1113</author><pubDate>Thu, 06 Aug 2015 00:00:23 +0800</pubDate><description><![CDATA[今天，在回想阿里的面试官关于cookie和session之间的区别和联系的问题时，想到一个问题，就是如果用curl模拟别人的cookie中的sessionID，是不是就可以直接就爆破登录了呢，想了很久，考虑用客户端的IP地址来解决，然后我就好奇php自身的sessionID的实现原理，查了一下发现，确实是跟客户端的IP挂钩，如果IP加密出来的sessionID和当前的sessionID不对应，也是]]></description><category></category></item><item><title><![CDATA[免输密码的登录功能的实现——MD5加盐]]></title><link>https://blog.youkuaiyun.com/Limitless1113/article/details/47170699</link><guid>https://blog.youkuaiyun.com/Limitless1113/article/details/47170699</guid><author>Limitless1113</author><pubDate>Fri, 31 Jul 2015 15:25:09 +0800</pubDate><description><![CDATA[记住登录密码：做法是登录成功后，根据用户ID，账号，密码等信息生成一串加密串（最好加入密码一起MD5加盐，这样会保证用户更改密码后，这个免输功能会失效，需要重新登录并选择记住密码去生成 新的加密字符串），扔 COOKIE 里，也扔 MYSQL 的用户表对应的用户的一个字段里，下次页面检测 COOKIE，如果里面有这一串则拿去 MYSQL 查询，根据填写的账号找到用户的数据，然后去匹配整个加密字符串]]></description><category></category></item><item><title><![CDATA[php5.3新特性之延迟静态绑定]]></title><link>https://blog.youkuaiyun.com/Limitless1113/article/details/47169595</link><guid>https://blog.youkuaiyun.com/Limitless1113/article/details/47169595</guid><author>Limitless1113</author><pubDate>Fri, 31 Jul 2015 14:26:19 +0800</pubDate><description><![CDATA[基于PHP版本: 5.3.5

PHP5.3 以后引入了延迟静态绑定:

static(关键字) 类似于 self(关键字) , 但它指向的是被调用的类(Document) 而不是包含类(DomainObject) , static 和 self 的区别:

主要的作用就是，弥补了原先的不足，原先子类可以用parent找到父类对象的，现在可以在父类用static找到当前继承它的这个子类]]></description><category></category></item><item><title><![CDATA[关于四层、七层负载均衡的理解和总结]]></title><link>https://blog.youkuaiyun.com/Limitless1113/article/details/46922245</link><guid>https://blog.youkuaiyun.com/Limitless1113/article/details/46922245</guid><author>Limitless1113</author><pubDate>Fri, 17 Jul 2015 08:19:29 +0800</pubDate><description><![CDATA[一、四层与七层负载均衡的区别
七层负载均衡基本都是基于http协议的，适用于web服务器的负载均衡。（nginx）
四层负载均衡主要是基于tcp协议报文，可以做任何基于tcp/ip协议的软件的负载均衡。(haproxy、LVS)
两者主要区别在于利用的报文所在的层面是不同的，各有各的好处。
七层应用负载的好处，是使得整个网络更”智能化“。例如访问一个网站的用户流量，可以通过七层的方式，将对]]></description><category></category></item><item><title><![CDATA[TCP粘包问题的分析与解决]]></title><link>https://blog.youkuaiyun.com/Limitless1113/article/details/46917163</link><guid>https://blog.youkuaiyun.com/Limitless1113/article/details/46917163</guid><author>Limitless1113</author><pubDate>Thu, 16 Jul 2015 20:55:06 +0800</pubDate><description><![CDATA[这两天看csdn有一些关于socket粘包，socket缓冲区设置的问题，发现自己不是很清楚，所以查资料了解记录一下： 

一 .两个简单概念长连接与短连接：
1.长连接

    Client方与Server方先建立通讯连接，连接建立后不断开， 然后再进行报文发送和接收。

2.短连接

    Client方与Server每进行一次报文收发交易时才进行通讯连接，交易完毕后立即]]></description><category></category></item><item><title><![CDATA[网络编程释疑之：同步，异步，阻塞，非阻塞]]></title><link>https://blog.youkuaiyun.com/Limitless1113/article/details/46888337</link><guid>https://blog.youkuaiyun.com/Limitless1113/article/details/46888337</guid><author>Limitless1113</author><pubDate>Wed, 15 Jul 2015 09:13:29 +0800</pubDate><description><![CDATA[文章原始出处：http://yaocoder.blog.51cto.com/2668309/1308899


一讲到网络编程的I/O模型，总会涉及到这几个概念。问了很多人，没几个能清晰地讲出他们之间的区别联系，甚至在网络上也有很多不同的观点，也不知是中国文字释义的博大精深，还是本来这几个概念就是绕人不倦。今天我也来给大家讲解一下我对这几个概念的理解。


既然网络上众说纷纭，不如找个]]></description><category></category></item><item><title><![CDATA[关于php中携带的php-fpm和php-cgi的理解纠正]]></title><link>https://blog.youkuaiyun.com/Limitless1113/article/details/46887669</link><guid>https://blog.youkuaiyun.com/Limitless1113/article/details/46887669</guid><author>Limitless1113</author><pubDate>Wed, 15 Jul 2015 06:33:34 +0800</pubDate><description><![CDATA[一开始我认为这两者是不同的，后来经过查阅许多资料后发现，其实两者都是php的FastCGI管理器，php-cgi是php自带的管理器，而php-fpm是为php专门制作的FastCGI管理器（5.3之前是php的补丁功能，5.3之后加入到php中，替换了原先的php-cgi）。


PHP-CGI


PHP-CGI是PHP自带的FastCGI管理器。

PHP-CGI的不足：]]></description><category></category></item><item><title><![CDATA[PHP编译原理之Opcode]]></title><link>https://blog.youkuaiyun.com/Limitless1113/article/details/46872367</link><guid>https://blog.youkuaiyun.com/Limitless1113/article/details/46872367</guid><author>Limitless1113</author><pubDate>Tue, 14 Jul 2015 08:09:07 +0800</pubDate><description><![CDATA[一.编译原理的过程


编译程序的工作过程一般可以划分为五个阶段：

  1）词法分析：输入源程序，对构成源程序的字符串进行扫描和分解，识别出一个个的单词

              （如基本字、标识 符、常量、运算符、标点符、左右括号等）

     描述词法规则通常用：正规式 和 有限自动机

     依循的原则：词法规则。。。线性分析。。。




  2]]></description><category></category></item><item><title><![CDATA[操作系统中栈和堆的区别]]></title><link>https://blog.youkuaiyun.com/Limitless1113/article/details/46784393</link><guid>https://blog.youkuaiyun.com/Limitless1113/article/details/46784393</guid><author>Limitless1113</author><pubDate>Tue, 07 Jul 2015 07:52:38 +0800</pubDate><description><![CDATA[堆和栈的区别
一、预备知识—程序的内存分配
一个由c/C++编译的程序占用的内存分为以下几个部分
1、栈区（stack）— 由编译器自动分配释放 ，存放函数的参数值，局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区（heap） — 一般由程序员分配释放， 若程序员不释放，程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事，分配方式倒是类似于链表。
3、全局区（静态区）（]]></description><category></category></item><item><title><![CDATA[线性表--数组和链表的区别]]></title><link>https://blog.youkuaiyun.com/Limitless1113/article/details/46784367</link><guid>https://blog.youkuaiyun.com/Limitless1113/article/details/46784367</guid><author>Limitless1113</author><pubDate>Tue, 07 Jul 2015 07:41:18 +0800</pubDate><description><![CDATA[数组是将元素在内存中连续存放，从栈中分配空间，由于每个元素占用内存相同，可以通过下标迅速访问数组中任何元素。但是如果要在数组中增加一个元素，需要移动大量元素，在内存中空出一个元素的空间，然后将要增加的元素放在其中。同样的道理，如果想删除一个元素，同样需要移动大量元素去填掉被移动的元素。增加和删除操作的效率并不高，如果应用需要快速访问数据，很少或不插入和删除元素，就应该用数组。


链表恰好相]]></description><category></category></item><item><title><![CDATA[关于apache以fastcgi模式运行php的错误理解纠正]]></title><link>https://blog.youkuaiyun.com/Limitless1113/article/details/46698785</link><guid>https://blog.youkuaiyun.com/Limitless1113/article/details/46698785</guid><author>Limitless1113</author><pubDate>Tue, 30 Jun 2015 18:04:50 +0800</pubDate><description><![CDATA[1、上篇文章写到，php要以fast-cgi方式在apache下运行，需要借助第三方的模块fcgi.so，默认的情况下是编译到apache中，如同apache这个程序拥有php脚本解析功能，这种是ISAPI方式模式。
 2、 fcgi.so这个功能模块是一个fastcgi管理器，原先php在5.3版本之前是以CGI模式或者是编译在apache下的ISAPI模式运行，所以需要这个第三方插件来帮助，]]></description><category></category></item><item><title><![CDATA[Linux+php在apache上以fastcgi模式运行]]></title><link>https://blog.youkuaiyun.com/Limitless1113/article/details/46691005</link><guid>https://blog.youkuaiyun.com/Limitless1113/article/details/46691005</guid><author>Limitless1113</author><pubDate>Tue, 30 Jun 2015 08:01:16 +0800</pubDate><description><![CDATA[FastCGI 的主要优点是把动态语言和web server分离开来，所以web server与PHP/PHP-FPM经常被部署在不同的服务器上，以分担前端web server服务器的压力，使web server专一处理静态请求和转发动态请求，而PHP/PHP-FPM服务器专一解析PHP动态请求。
为了测试，暂不安装mysql并且这里以apache为例，编译参数较少。
安装编译环境：
yum]]></description><category></category></item><item><title><![CDATA[Apache与ngnix的对比]]></title><link>https://blog.youkuaiyun.com/Limitless1113/article/details/46690955</link><guid>https://blog.youkuaiyun.com/Limitless1113/article/details/46690955</guid><author>Limitless1113</author><pubDate>Tue, 30 Jun 2015 07:18:06 +0800</pubDate><description><![CDATA[一、PHP在Apache与ngnix下的运行模式。
1）、Apache下有三种运行模式：CGI模式，模块化模式，FastCGI模式。
CGI模式会是比较原始的方式，每一次接到请求会调用php.exe，解析php.ini，加载DLL等，速度自然慢。
模块化模式，Apache默认以这种方式运行php，这是将php编译成自己本身的一个模块，在处理php脚本的时候不需要去调用php.exe程序，整个]]></description><category></category></item><item><title><![CDATA[1000瓶药中找出一瓶毒药，10只老鼠做试验]]></title><link>https://blog.youkuaiyun.com/Limitless1113/article/details/46681851</link><guid>https://blog.youkuaiyun.com/Limitless1113/article/details/46681851</guid><author>Limitless1113</author><pubDate>Mon, 29 Jun 2015 14:30:51 +0800</pubDate><description><![CDATA[题目如下：现有1000瓶药，其中有一瓶毒药，喝了之后1小时后才产生效果，现在你有10只老鼠和1个小时的时间，请问怎么找出毒药？
题解：这道题明显就是只能一开始就把所有药都喂给10只老鼠，1小时后就直接一次性出结果。
现在以2只老鼠做例子，每只老鼠喝一瓶药，2只老鼠能验出2瓶，最多只能从3瓶中找出一瓶毒药；
这显然不够的，但是如果是用第一只老鼠喝第一瓶药，第二只老鼠喝第二瓶药，第1和第2只老鼠]]></description><category></category></item><item><title><![CDATA[递归与递推实现斐波那契数列算法]]></title><link>https://blog.youkuaiyun.com/Limitless1113/article/details/46661583</link><guid>https://blog.youkuaiyun.com/Limitless1113/article/details/46661583</guid><author>Limitless1113</author><pubDate>Sat, 27 Jun 2015 15:18:04 +0800</pubDate><description><![CDATA[<?php
/*
f(n)=f(n-1)+f(n-2)
f(0)=0
f(1)=1
*/
function Fibonacci($n)
{
	if($n<=0)
	{
		return 0;
	}
	if($n==1)
	{
		return 1;
	}
	return f(n-1)+f(n-2);
}

/*
递推实现
*/
function Fibonacci1($n)
{
	if($n<=0]]></description><category></category></item><item><title><![CDATA[快速排序Qsort]]></title><link>https://blog.youkuaiyun.com/Limitless1113/article/details/46661473</link><guid>https://blog.youkuaiyun.com/Limitless1113/article/details/46661473</guid><author>Limitless1113</author><pubDate>Sat, 27 Jun 2015 15:01:55 +0800</pubDate><description><![CDATA[<?php
function Partition(&$arr,$low,$high)
{
	$_t=$arr[$low];
	while($low<$high)
	{
		//注意第二个限制条件，不然如果一直都是大于会超过数组下标
		while($arr[$high]>$_t&&$high>$low)  --$high;
		$arr[$low]=$arr[$high];
		while($ar]]></description><category></category></item><item><title><![CDATA[队列与栈：两个栈实现队列，两个队列实现栈]]></title><link>https://blog.youkuaiyun.com/Limitless1113/article/details/46661287</link><guid>https://blog.youkuaiyun.com/Limitless1113/article/details/46661287</guid><author>Limitless1113</author><pubDate>Sat, 27 Jun 2015 14:40:03 +0800</pubDate><description><![CDATA[1、题目：用两个栈实现一个队列。先用一个栈录入数据，再输出这个栈到另外一个栈，就可以形成队列的先进先出顺序了。
因为PHP的数组可以模拟栈的实现，所以代码如下：<?php
function StackToQueue($data)
{
	$arr=array();
	while($_t=array_pop($data)) 
	{
		array_push($arr, $_t);
	}
	retur]]></description><category></category></item></channel></rss>