PHP程序研究

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2015年3月5日

摘要: ---恢复内容开始---一、拒绝服务攻击的发展 从拒绝服务攻击诞生到现在已经有了很多的发展,从最初的简单Dos到现在的DDOS。那么什么是Dos和DDOS呢?DoS是一种利用单台计算机的攻击方式。而DDOS(Distributed Denial of Service,分布式拒绝服务)是一种基于Do... 阅读全文
posted @ 2015-03-05 23:22 Ephraim 阅读(427) 评论(0) 推荐(0) 编辑

2011年12月28日

摘要: 首先我们来看个例子,笔者曾经常去的一家咖啡店有喝5杯咖啡免费赠一杯咖啡的优惠,然而一次性消费5杯咖啡的机会微乎其微,这时就需要某种方式来纪录某位顾客的消费数量。想象一下其实也无外乎下面的几种方案:1、该店的店员很厉害,能记住每位顾客的消费数量,只要顾客一走进咖啡店,店员就知道该怎么对待了。这种做法就是协议本身支持状态。2、发给顾客一张卡片,上面记录着消费的数量,一般还有个有效期限。每次消费时,如果顾客出示这张卡片,则此次消费就会与以前或以后的消费相联系起来。这种做法就是在客户端保持状态。3、发给顾客一张会员卡,除了卡号之外什么信息也不纪录,每次消费时,如果顾客出示该卡片,则店员在店里的纪录本上 阅读全文
posted @ 2011-12-28 04:20 Ephraim 阅读(200) 评论(0) 推荐(0) 编辑

2010年7月21日

摘要: URL即:统一资源定位符 (Uniform Resource Locator, URL)完整的URL由这几个部分构成:scheme://host:port/path?query#fragmentscheme:通信协议常用的http,ftp,maito等host:主机服务器(计算机)域名系统 (DNS) 主机名或 IP 地址。port:端口号整数,可选,省略时使用方案的默认端口,如http的默认端口... 阅读全文
posted @ 2010-07-21 22:52 Ephraim 阅读(483) 评论(0) 推荐(0) 编辑

2010年7月13日

摘要: 正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。 阅读全文
posted @ 2010-07-13 06:13 Ephraim 阅读(184) 评论(0) 推荐(0) 编辑

2010年6月7日

摘要: 将数据缓存成php文件并不是最好的方式 在小数据量的情况下做文本缓存的可读性最好 阅读全文
posted @ 2010-06-07 23:46 Ephraim 阅读(703) 评论(0) 推荐(0) 编辑

摘要: 分表是个目前算是比较炒的比较流行的概念,特别是在大负载的情况下,分表是一个良好分散数据库压力的好方法。 阅读全文
posted @ 2010-06-07 23:43 Ephraim 阅读(1603) 评论(1) 推荐(2) 编辑

2010年5月28日

摘要: 0、用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。2、$row[&rsq... 阅读全文
posted @ 2010-05-28 21:38 Ephraim 阅读(252) 评论(0) 推荐(1) 编辑

2010年5月27日

该文被密码保护。 阅读全文
posted @ 2010-05-27 03:30 Ephraim 阅读(3) 评论(0) 推荐(0) 编辑

该文被密码保护。 阅读全文
posted @ 2010-05-27 03:04 Ephraim 阅读(3) 评论(0) 推荐(0) 编辑

该文被密码保护。 阅读全文
posted @ 2010-05-27 02:43 Ephraim 阅读(2) 评论(0) 推荐(0) 编辑

该文被密码保护。 阅读全文
posted @ 2010-05-27 02:17 Ephraim 阅读(3) 评论(0) 推荐(0) 编辑

2010年5月26日

摘要: 最近由于需要大概研究了一下MYSQL的随机抽取实现方法。举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1。但是,后来我查了一下MYSQL的官方手册,里面针对RAND()的提示大概意思就是,在ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描。但是在M... 阅读全文
posted @ 2010-05-26 05:45 Ephraim 阅读(7402) 评论(4) 推荐(4) 编辑

摘要: 在一些情况下,MySQL可以直接使用索引来满足一个 ORDER BY 或 GROUP BY 子句而无需做额外的排序。尽管 ORDER BY 不是和索引的顺序准确匹配,索引还是可以被用到,只要不用的索引部分和所有的额外的 ORDER BY 字段在 WHERE 子句中都被包括了。使用索引的MySQL Order By下列的几个查询都会使用索引来解决 ORDER BY 或 GROUP BY 部分:SEL... 阅读全文
posted @ 2010-05-26 05:33 Ephraim 阅读(13247) 评论(1) 推荐(1) 编辑

摘要: (1)针对Innodb表,尽量不执行SELECTCOUNT(*)语句,因为Innodb表没有类似MyISAM那样的内部计数器来记录表记录总量,执行这个操作将会全表扫描,速度很慢.(2)尽量使用MyISAM表,除非必须使用其他类型,因为MyISAM类型的总体读写效率是相当高的,缺点是表级锁,而不是行/页级锁.(3)善用EXPLAIN来帮助你分析查询优化情况(4)如果需要对一个较大的且并发读写较多的数... 阅读全文
posted @ 2010-05-26 05:19 Ephraim 阅读(415) 评论(0) 推荐(0) 编辑

摘要: 索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表:我们随机向里面插入了10000条记录,其中有一条:5555, admin。在查找username="admin"的记录 SELECT * FROM mytable WHERE username='... 阅读全文
posted @ 2010-05-26 05:18 Ephraim 阅读(1138) 评论(0) 推荐(0) 编辑

摘要: 恰当的索引可以加快查询速度,可以分为四种类型:主键、唯一索引、全文索引、普通索引。主键:唯一且没有null值。create table pk_test(f1 int not null,primary key(f1));alter table customer modify id int not null, add primary key(id);普通索引:允许重复的值出现。create table... 阅读全文
posted @ 2010-05-26 04:56 Ephraim 阅读(1240) 评论(0) 推荐(0) 编辑

2010年5月24日

摘要: 1echo 和 @回显命令@ #关闭单行回显echo off #从下一行开始关闭回显@echo off #从本行开始关闭回显。一般批处理第一行都是这个echo on #从下一行开始打开回显echo #显示当前是 echo off 状态还是 echo on 状态echo. #输出一个”回车换行”,空白行 #(同echo, echo; echo+ echo[ echo] ech... 阅读全文
posted @ 2010-05-24 21:22 Ephraim 阅读(369) 评论(0) 推荐(0) 编辑

摘要: 根据W3C的标准,以下16进制的字符是不被允许出现在XML文件中的,即使放在<![CDATA[]]> 中,也不能幸免。\\x00-\\x08\\x0b-\\x0c\\x0e-\\x1f所以,需要对在这3个范围段的字符进行排除。使用这个函数过滤下就好了。根据W3C的标准,以下16进制的字符是不被允许出现在XML文件中的,即使放在<![CDATA[]]> 中,也不能幸免。\\x... 阅读全文
posted @ 2010-05-24 21:13 Ephraim 阅读(926) 评论(0) 推荐(0) 编辑

2010年5月20日

摘要: 概述jQuery 是继 prototype 之后又一个优秀的 Javascript 框架。其宗旨是—写更少的代码,做更多的事情。它是轻量级的 js 库(压缩后只有21k) ,这是其它的 js 库所不及的,它兼容 CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。 jQuery 是一个快速的,简洁的 javaScript 库... 阅读全文
posted @ 2010-05-20 23:17 Ephraim 阅读(192) 评论(0) 推荐(0) 编辑

2010年5月14日

摘要: 无论是做Web产品还是Web项目,文件上传是经常要用到的功能。以前经常听到做项目的同事抱怨:“这款文件上传控件功能强大但是用起来麻烦,最简单的input上传使用方便但是功能太简单(例如不支持多文件),外观也不尽如人意”。之后我一直留意网上的上传控件,最近看到一款基于jquery的上传插件Uploadify无论在功能、外观、可用性和扩展性上都有不错表现,于是研究了一番,介绍给... 阅读全文
posted @ 2010-05-14 04:46 Ephraim 阅读(1453) 评论(0) 推荐(0) 编辑

摘要: 加速页面加载速度有一个方法就是把CSS和JS文件放到另外一个单独的服务器上,这样在访问量比较大的情况下可以分担主服务器的压力, 如果你的网站用到了一些主流的Ajax library比如JQuery或者Prototype的话,你可以直接用Google Javascript API loader来加载你的ajax library。具体的方法如下面的例子:<script src="http://w... 阅读全文
posted @ 2010-05-14 04:08 Ephraim 阅读(190) 评论(0) 推荐(0) 编辑

摘要: 一系列的实验、开发了各种工具、写了大量的文章和博客并在各种会议上参与探讨。最佳实践的核心就是旨在提高网站性能。 Excetional Performance团队总结出了一系列可以提高网站速度的方法。可以分为7大类34条。包括内容、服务器、cookie、CSS、JavaScript、图片、移动应用等七部分。其中内容部分一共十条建议:一、内容部分尽量减少HTTP请求减少DNS查找避免跳转缓存Ajxa推... 阅读全文
posted @ 2010-05-14 03:18 Ephraim 阅读(287) 评论(0) 推荐(0) 编辑

摘要: 1不写注释2不使用可以提高生产效率的IDE工具3不使用版本控制4不按照编程规范写代码5不使用统一的方法6编码前不去思考和计划7在执行sql前不执行编码和安全检测8不使用测试驱动开发9编码时不打开自动报错(error_reporting)10不使用一种好的调试工具11不重构你的代码(refactor)12不采用MVC这样的分层结构13不知道以下等等概念:KISS,DRY,MVC,OOP,REST14... 阅读全文
posted @ 2010-05-14 02:47 Ephraim 阅读(180) 评论(0) 推荐(0) 编辑

摘要: 1。__construct()实例化对象时被调用,当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用。2。__destruct()当删除一个对象或对象操作终止时被调用。3。__call()对象调用某个方法,若方法存在,则直接调用;若不存在,则会去调用__call函数。4。__get()读取一个对象的属性时,若属性存在,则直接返回属性值;若不存在... 阅读全文
posted @ 2010-05-14 02:43 Ephraim 阅读(308) 评论(0) 推荐(0) 编辑

摘要: 建立如此结构的数据表,并插入110万条随机记录,进行查询性能测试。插入110万条随机记录后,数据表的大小为102MB。现在使用phpMyAdmin自带的SQL查询器进行性能分析。下面进行带索引的模式下查询测试:A.随机的字符型字段全匹配查询,用时0.0005(S)B.随机的主键查询,用时0.0005(S)C.随机的使用字符函数查询,用时0.4482(S)D.使用LIKE模式一查询,用时0.0007... 阅读全文
posted @ 2010-05-14 02:32 Ephraim 阅读(508) 评论(0) 推荐(0) 编辑

摘要: 数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器第1章 引言随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。水平切分数据库,可以降低单台机器的负载,同时最大限度的降低... 阅读全文
posted @ 2010-05-14 02:28 Ephraim 阅读(851) 评论(1) 推荐(1) 编辑

摘要: 最近得到了一个数十M的MySQL脚本文件,准备还原为数据库。以前就使用MySQL-Front短暂使用过MySQL,先用它试试,结果挂掉。这样吧,先用MySQL-Front创建了空数据库,然后使用mysql命令行导入吧。1)使用MySQL-Front创建了空数据库因为看脚本中对象都有DEFAULT CHARSET=gbk COMMENT=…指令,所以字符集选择gbk2)启动MySQL命... 阅读全文
posted @ 2010-05-14 02:24 Ephraim 阅读(459) 评论(0) 推荐(0) 编辑

摘要: <!-->query result(1 records)count(*)993098下面我们 来一步一步看看下面的这条语句:explain select sql_no_cache * from t_page_sample order by id asc limit 900001,20;<!--><!-->query result(1 records)idsele... 阅读全文
posted @ 2010-05-14 02:10 Ephraim 阅读(793) 评论(1) 推荐(0) 编辑