自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (2)
  • 收藏
  • 关注

原创 Mysql的全文索引为什么不支持中文

Mysql的全文索引是根据英文的特点来开发,英文“this is my mysql database”,英文可以根据空格和标点符号去分开每个单词,然后统计单词的位置,生成索引树;然而中文却没有这种特点,只能利用sphinx或者lucence去利用词库,匹配出关键词,然后构建索引树,通过关键词索引树可以直接获取到数据的Id,然后用id去数据库进行查询,直接命中数据库的索引,提升查询效率,而且第三

2015-09-15 16:22:29 1339

原创 关于静态方法不能调用类中的非静态属性的理解

class test{ public $a; public function game(){ echo "123"; } public static function name(){ //$this->a=new test();错误的写法, //静态方法在类加载的时候就加载进内存,此时$this的对象还没有生成 //所以报错 $this->a=new test();

2015-08-24 15:52:58 4450

原创 PHP设计模式之装饰模式

本文知识来源于:《深入PHP面向对象、模式和实践》一书<?php/*Title:装饰模式Detail:平原、污染、钻石对象的独立和组合。*/abstract class Tile{ abstract function getWealthFactor();}//平原类,wealthfactor为财富值class Plains extends Tile{ private $w

2015-08-19 15:33:25 581

原创 个人猜想的web安全——理解PHP的sessionID的实现

今天,在回想阿里的面试官关于cookie和session之间的区别和联系的问题时,想到一个问题,就是如果用curl模拟别人的cookie中的sessionID,是不是就可以直接就爆破登录了呢,想了很久,考虑用客户端的IP地址来解决,然后我就好奇php自身的sessionID的实现原理,查了一下发现,确实是跟客户端的IP挂钩,如果IP加密出来的sessionID和当前的sessionID不对应,也是

2015-08-06 00:00:23 4413

原创 免输密码的登录功能的实现——MD5加盐

记住登录密码:做法是登录成功后,根据用户ID,账号,密码等信息生成一串加密串(最好加入密码一起MD5加盐,这样会保证用户更改密码后,这个免输功能会失效,需要重新登录并选择记住密码去生成 新的加密字符串),扔 COOKIE 里,也扔 MYSQL 的用户表对应的用户的一个字段里,下次页面检测 COOKIE,如果里面有这一串则拿去 MYSQL 查询,根据填写的账号找到用户的数据,然后去匹配整个加密字符串

2015-07-31 15:25:09 1028

原创 php5.3新特性之延迟静态绑定

基于PHP版本: 5.3.5PHP5.3 以后引入了延迟静态绑定:static(关键字) 类似于 self(关键字) , 但它指向的是被调用的类(Document) 而不是包含类(DomainObject) , static 和 self 的区别:主要的作用就是,弥补了原先的不足,原先子类可以用parent找到父类对象的,现在可以在父类用static找到当前继承它的这个子类

2015-07-31 14:26:19 544

原创 关于四层、七层负载均衡的理解和总结

一、四层与七层负载均衡的区别七层负载均衡基本都是基于http协议的,适用于web服务器的负载均衡。(nginx)四层负载均衡主要是基于tcp协议报文,可以做任何基于tcp/ip协议的软件的负载均衡。(haproxy、LVS)两者主要区别在于利用的报文所在的层面是不同的,各有各的好处。七层应用负载的好处,是使得整个网络更”智能化“。例如访问一个网站的用户流量,可以通过七层的方式,将对

2015-07-17 08:19:29 3463

原创 TCP粘包问题的分析与解决

这两天看csdn有一些关于socket粘包,socket缓冲区设置的问题,发现自己不是很清楚,所以查资料了解记录一下: 一 .两个简单概念长连接与短连接:1.长连接    Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。2.短连接    Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即

2015-07-16 20:55:06 715

转载 网络编程释疑之:同步,异步,阻塞,非阻塞

文章原始出处:http://yaocoder.blog.51cto.com/2668309/1308899一讲到网络编程的I/O模型,总会涉及到这几个概念。问了很多人,没几个能清晰地讲出他们之间的区别联系,甚至在网络上也有很多不同的观点,也不知是中国文字释义的博大精深,还是本来这几个概念就是绕人不倦。今天我也来给大家讲解一下我对这几个概念的理解。既然网络上众说纷纭,不如找个

2015-07-15 09:13:29 1140 3

原创 关于php中携带的php-fpm和php-cgi的理解纠正

一开始我认为这两者是不同的,后来经过查阅许多资料后发现,其实两者都是php的FastCGI管理器,php-cgi是php自带的管理器,而php-fpm是为php专门制作的FastCGI管理器(5.3之前是php的补丁功能,5.3之后加入到php中,替换了原先的php-cgi)。PHP-CGIPHP-CGI是PHP自带的FastCGI管理器。PHP-CGI的不足:

2015-07-15 06:33:34 965

原创 PHP编译原理之Opcode

一.编译原理的过程编译程序的工作过程一般可以划分为五个阶段:  1)词法分析:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词              (如基本字、标识 符、常量、运算符、标点符、左右括号等)     描述词法规则通常用:正规式 和 有限自动机     依循的原则:词法规则。。。线性分析。。。  2

2015-07-14 08:09:07 2303

转载 操作系统中栈和堆的区别

堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)(

2015-07-07 07:52:38 896

原创 线性表--数组和链表的区别

数组是将元素在内存中连续存放,从栈中分配空间,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。但是如果要在数组中增加一个元素,需要移动大量元素,在内存中空出一个元素的空间,然后将要增加的元素放在其中。同样的道理,如果想删除一个元素,同样需要移动大量元素去填掉被移动的元素。增加和删除操作的效率并不高,如果应用需要快速访问数据,很少或不插入和删除元素,就应该用数组。链表恰好相

2015-07-07 07:41:18 3286

原创 关于apache以fastcgi模式运行php的错误理解纠正

1、上篇文章写到,php要以fast-cgi方式在apache下运行,需要借助第三方的模块fcgi.so,默认的情况下是编译到apache中,如同apache这个程序拥有php脚本解析功能,这种是ISAPI方式模式。 2、 fcgi.so这个功能模块是一个fastcgi管理器,原先php在5.3版本之前是以CGI模式或者是编译在apache下的ISAPI模式运行,所以需要这个第三方插件来帮助,

2015-06-30 18:04:50 1934

原创 Linux+php在apache上以fastcgi模式运行

FastCGI 的主要优点是把动态语言和web server分离开来,所以web server与PHP/PHP-FPM经常被部署在不同的服务器上,以分担前端web server服务器的压力,使web server专一处理静态请求和转发动态请求,而PHP/PHP-FPM服务器专一解析PHP动态请求。为了测试,暂不安装mysql并且这里以apache为例,编译参数较少。安装编译环境:yum

2015-06-30 08:01:16 1731

原创 Apache与ngnix的对比

一、PHP在Apache与ngnix下的运行模式。1)、Apache下有三种运行模式:CGI模式,模块化模式,FastCGI模式。CGI模式会是比较原始的方式,每一次接到请求会调用php.exe,解析php.ini,加载DLL等,速度自然慢。模块化模式,Apache默认以这种方式运行php,这是将php编译成自己本身的一个模块,在处理php脚本的时候不需要去调用php.exe程序,整个

2015-06-30 07:18:06 990

原创 1000瓶药中找出一瓶毒药,10只老鼠做试验

题目如下:现有1000瓶药,其中有一瓶毒药,喝了之后1小时后才产生效果,现在你有10只老鼠和1个小时的时间,请问怎么找出毒药?题解:这道题明显就是只能一开始就把所有药都喂给10只老鼠,1小时后就直接一次性出结果。现在以2只老鼠做例子,每只老鼠喝一瓶药,2只老鼠能验出2瓶,最多只能从3瓶中找出一瓶毒药;这显然不够的,但是如果是用第一只老鼠喝第一瓶药,第二只老鼠喝第二瓶药,第1和第2只老鼠

2015-06-29 14:30:51 25668 2

原创 递归与递推实现斐波那契数列算法

<?php/*f(n)=f(n-1)+f(n-2)f(0)=0f(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

2015-06-27 15:18:04 1496

原创 快速排序Qsort

<?phpfunction Partition(&$arr,$low,$high){ $_t=$arr[$low]; while($low<$high) { //注意第二个限制条件,不然如果一直都是大于会超过数组下标 while($arr[$high]>$_t&&$high>$low) --$high; $arr[$low]=$arr[$high]; while($ar

2015-06-27 15:01:55 754

原创 队列与栈:两个栈实现队列,两个队列实现栈

1、题目:用两个栈实现一个队列。先用一个栈录入数据,再输出这个栈到另外一个栈,就可以形成队列的先进先出顺序了。因为PHP的数组可以模拟栈的实现,所以代码如下:<?phpfunction StackToQueue($data){ $arr=array(); while($_t=array_pop($data)) { array_push($arr, $_t); } retur

2015-06-27 14:40:03 638

原创 合并两个有序数组

题目:有两个排序的数组A和B,数组A剩余的空间刚好够容纳B,请实现一个函数,把B中的所有数字插入到A中并且所有的数都是排序的。很多人一开始的想法就是简单的插入,足够暴力,在A中直接从头到尾遍历,找到合适的位置就移动后面所有的元素,让出一个位填补新插入的数,这种做法是效率最低的。反其道而行之,更好的办法是从尾开始比较A和B中的数字,把较大的数字复制到A的末尾。这种解决方法同样可以

2015-06-26 15:17:53 759

原创 行元素从小到大递增,列元素从小到大递增的数组查找算法

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。考点:这道题主要是要利用好所给的两个条件,行递增和列递增,将肯定不合适的数据排除在外,将要遍历的数据尽可能的减少。数组例子如下:1289249124

2015-06-26 14:44:30 1130

原创 PHP的单例模式--三私一公

注意:1.外部不可以实例化,因此内部实例化函数的类型必须为静态,在类未实例化之前就已经初始化;2.静态函数只能访问静态变量,所以定义private static $instance;3.静态变量的访问写法为:类名::$变量名,在类内部可以直接写self:$instance;4.可以用instanceof这个关键字检测变量中存放的是不是当前的类实例。<?php//php下的单例

2015-06-26 10:40:23 6300 1

原创 如何解决秒杀商品时,商品超卖的情况

文章的思路主要来源于:http://www.csdn.net/article/2014-11-28/2822858解决方案(以下方案都是基于分布式的redis缓存):1.用队列解决大并发建立一条队列,将每个请求加入到队列中,然后异步获取队列数据进行处理,把多线程的事情变成单线程,处理完一个就从队列中删除一个。但是会出现一个现象,请求特别多的时候,一瞬间将redis队列内存撑爆,导致系统

2015-06-14 20:59:46 13732 1

原创 关于RBAC权限管理的进一步思考

较为常见的RBAC管理员表和角色表有着多对多的关系,角色表和权限表有着多对多的关系。操作表中附上管理员的id,就可以只查看自己的操作信息。权限表中对应每个权限管理模块再添加一个可管理全部信息的权限,例如:商品表有个Admin/Goods/ManagerAll的权限,虽然不对应Url,但是可以用来判定是否显示所有的商品。进阶版的RBAC昨天有人问我如果是要省级管理员能看到市级

2015-06-08 08:42:15 626

原创 关于Thinkphp中的图像处理无法处理gif图的问题

tp中有一个BUG无法生成GIF的缩略图:解决解决办法:修改TP中的GIF类即可:这个文件中后两个类,GIFEncoder和GIFDecoder的构造函数名改为:__construct即可。【TP用的是旧版本的写法:方法名和类名相同就是构造函数】GIFEncoderGIFDecoder

2015-06-05 22:39:34 1419

原创 PHP中防XSS攻击和防sql注入

SQL注入如何防?TP中的底层已经做了防SQL注入的操作,只要我们操作数据库时使用TP提供给我们的方法就不会有问题,如添加商品时我们调用了add方法。唯一要注意的就是如果我们自己拼SQL执行时就要自己来过滤了。 总结:如果要自己拼SQL语句,一定要自己再过滤一下【addslashes】,也不是直接就能过滤,还要考虑PHP服务器有没有开启自动过滤的功能,如果服务器已经开启自动过滤的功能我

2015-06-04 16:02:01 4234

原创 svn:期望文件系统格式在“1”到“4”之间;发现格式“6” 的问题解决方案

这种情况出现的原因暂时不明,有人说是在未开启svn服务的时候就建库,但是我是开启的状态下建库的。有一种建库方法可以避免这种问题,允许仓库通过file或者svn方式提交。就是直接在svn服务器端软件的bin目录下用svnadmin create指令。

2015-06-04 07:45:43 4315

转载 Javascript原型链和原型的一个误区

之前我对Javascript的原型链中, 原型继承与标识符查找有些迷惑,但在看了鸟哥的说明之后~~如, 如下的代码:function Foo() {};var foo = new Foo();Foo.prototype.label = "laruence";alert(foo.label); //output: laruencealert(Foo.label);//outp

2015-05-29 08:19:31 500

原创 jQuery1.11.3框架对象分析

五.jquery框架对象分析jquery框架对象类型:jquery对象  和 $对象① jquery对象就是各种选择器创建出来的对象② $对象就是函数对象1. jquery对象 Jquery对象本身没有什么成员,99%的成员是通过Juery.fn.extend()方法赋值继承过来的。2. $函数对象    $(‘div’)----->创建一个jq

2015-05-15 15:56:36 1177

原创 深入理解javascript中的AO对象

1.主要理解一点,里面的scope属性就先保存了所有父级环境的AO对象,这个scope属性是静态的,除非函数被销毁,否则从函数创建时就已经存在。2.函数运行时会创建变量,将在scope属性中加入自身AO对象。3.有一个特例,var x = 10; function foo() { var y = 20; function barFD() { // 函数声明 al

2015-05-12 07:09:27 4157

原创 关于赛马的问题,25匹赛出前3名或者前5名

一共有25匹马,有一个赛场,赛场有5个赛道,就是说最多同时可以有5匹马一起比赛。假设每匹马都跑的很稳定,不用任何其他工具,只通过马与马之间的比赛,试问最少得比多少场才能知道跑得最快的5匹马?分组一:一二三四五1611162127121722381318234

2015-05-11 14:12:02 3449 3

原创 PHP:防止跨域CURL采集数据

1.一些网站是采用检测此IP地址登录的密集度,多次登录后需要输入验证码,那么这时CURL模拟的提交就需要去对验证码图片进行分析,这样就会花费大量时间,当然,这种是对于防止登录被爆破,用户资料泄露的。2.还有一种就是直接在session保存生成的随机码,然后放在input的隐藏域,这种比验证码那种差了许多。3.注意javascipt本身是无法跨域提交的,不是因为不能做到,而是防止别人恶意偷取

2015-05-10 15:07:27 3913

原创 Mysql之char和varchar的区别

varchar1、使用比固定长度类型(char)占用更少存储空间(除了使用ROW_FORMAT=FIXED创建的MyISAM表)2、使用额外的1-2字节来存储值长度,列长度3、节约空间,所以性能会有帮助。在更新的时候会产生额外的工作。4、5.0以上版本,取值或设置值都会保存字符串末尾的空格,4.1之前的版本都会把字符串末尾的空格删除掉5、最大长度远大于平均长度,很少发生更新的时

2015-04-20 22:05:31 572

原创 CSS的兼容性

1.以上这种写法:同一个HTML元素可以添加多个类名称,多个类名称之间用空格隔开。2.浏览器兼容性简介因为CSS代码是由浏览器软件来进行解释的,每个浏览器厂商到CSS标准执行的不是太完善。同一个网页,在不同浏览器下显示的效果不一样,这种现象就是“不兼容”。最不兼容的浏览器是:IE6、IE7、IE83.浏览器市场份额统计:http://tongji.baidu

2015-02-04 21:23:32 750

原创 Css基础知识

1.CSS是(Cascading Style Sheets)层叠样式表或者级联样式表的缩写。格式为:h1 {color:red;font-size:14px},选择器,声明。2.CSS语法一个CSS样式表代码由一个或多个CSS规则组成;CSS样式规则由选择器和格式声明语句组成;选择器通常是您需要改变样式的 HTML 元素;格式声明语句放在{ }内;每一条格式声明语句

2015-02-03 08:57:17 655

原创 html和xhtml基础知识整理

1.apache服务器如果接收到php文件的http请求,它不能处理,apache服务器交给php脚本程序进行处理,如果是访问html静态页,apache可以找到该文件并返回给客户端,apache服务器主要做一个收发任务。2.含义:用于告诉浏览器用什么文件格式翻译其中的代码。这是一个网页最大的标记,其他所有标记都必须位于其中。有两个子标记和.3.含义:代表网页头部,一般是控制信息,告诉浏览

2015-01-26 09:33:47 956

转载 asp.net mvc3网站部署在IIS6的方法

部署环境: Server 2003 +IIS6 .net framework 4.0下载地址http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=0A391ABD-25C1-4FC0-919F-B21F31AB88B7Mvc3下载地址http://www.microsoft.com/downloads/zh-cn/de

2015-01-07 16:27:55 892

原创 使用Ueditor1.4版本需要注意的点

1.引用配置文件时,ueditor.all.min.js一定要放在config.js文件之前;2.图片上传功能需要修改config.json文件中的图片路径保存前缀和自定保存路径,前缀从根目录写起,前缀和自定义保存路径拼起来刚好是一条完整的路径。

2014-12-24 08:25:57 934

转载 asp.net获取网站绝对路径

网站在服务器磁盘上的物理路径: HttpRuntime.AppDomainAppPath虚拟程序路径: HttpRuntime.AppDomainAppVirtualPath任何于Request/HttpContext.Current等相关的方法, 都只能在有请求上下文或者页面时使用. 即在无请求上下文时,HttpContext.Current为null. 而上面提到的方法一直可用.

2014-11-26 20:12:57 890

html+css+js基础知识ppt

4份ppt,包含Html、css、javascript的基础知识,内容十分详细,有兴趣的可以下载学习,查漏补缺

2015-02-02

Pro.ASP.NET MVC4英文版与个人学习笔记

本人自学PRO.ASP.NET MVC4第四版英文版,以及个人对一些重点的理解和笔记

2014-11-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除