PHP字符串
——《PHP经典案例》1.0概述
字符串:PHP中字符串指的是字符的序列。PHP字符串是二进制安全的(例如,字符串中可以包含空字节),而且可以随意加长或者缩短。对字符串大小的唯一限制就是PHP可用的内存数量。
警告:通常情况下,PHP字符串是ASCII字符串,对于像UTF-8等字符编码这样一些非ASCII数据,则必须做一些额外的工作。
PHP字符串可以通过三种方式来初始化1.单引号2.双引号3.heredoc形式(”here document”)
单引号字符串中,字符串中需要转译的特殊字符只有反斜杠和单引号本身因为PHP不会检查单引号字符串中的插入变量及任何转义序列,所有用这种方式定义字符串不仅直观而且速度快
12345678print 'I have gone to te store.'; //输出 I have gone to te store.print 'I\'ve gone to the store.'; //输出 I've gone to the store.//输出 Would you pay $1. ...
Look And Say 序列——《PHP经典实例》
“Look and Say”序列是J.H.Conway发明的一个著名的整数序列
12345678910111213141516171819202122232425262728293031323334function lookandsay($s){//将保存返回值的变量初始化为空字符串$r='';//$m用于保存我们要查找的字符,同时初始化首字符$m=$s[0];//用来保存我们找到的$m的数目,初始化为1,如不指定,没法开始统计$n = 1;for($i=1,$j=strlen($s);$i<$j;$i++){//如果这个字符与上一个字符相同if($s[$i]==$m){//这个字符的数目加1$n++;}else{//否则,把数目和这个字符追加到返回值$r.=$n.$m;//把要找的设置成当前的字符$m=$s[$i];//并把数目重置为1$n=1;}}//返回构建好的字符吕以及最终的数目和字符return $r.$n.$m;}for ($i=0,$s=1;$i<10;$i++ ...
MyISAM和Innodb比较
MyISAM 是MySQL中默认的存储引擎,一般来说不是有太多人关心这个东西。决定使用什么样的存储引擎是一个很tricky的事情,但是还是值我们去研究一下,这里的文章只考虑 MyISAM 和InnoDB这两个,因为这两个是最常见的。
下面先让我们回答一些问题:◆你的数据库有外键吗?◆你需要事务支持吗?◆你需要全文索引吗?◆你经常使用什么样的查询模式?◆你的数据有多大?
myisam只有索引缓存
innodb不分索引文件数据文件 innodb buffer
myisam只能管理索引,在索引数据大于分配的资源时,会由操作系统来cache;数据文件依赖于操作系统的cache。innodb不管是索引还是数据,都是自己来管理
思 考上面这些问题可以让你找到合适的方向,但那并不是绝对的。如果你需要事务处理或是外键,那么InnoDB 可能是比较好的方式。如果你需要全文索引,那么通常来说 MyISAM是好的选择,因为这是系统内建的,然而,我们其实并不会经常地去测试两百万行记录。所以,就算是慢一点,我们可以通过使用Sphinx从 InnoDB中获得全文索引。
数据的大 ...
MySQL中EXPLAIN解释命令
explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。
使用方法,在select语句前加上explain就可以了:
如:
explain select surname,first_name form a,b where a.id=b.idEXPLAIN列的解释:
table:显示这一行的数据是关于哪张表的
type:这是重要的列,显示连接使用了何种类型。从最好到最差的连接类型为const、eq_reg、ref、range、indexhe和ALL
possible_keys:显示可能应用在这张表中的索引。如果为空,没有可能的索引。可以为相关的域从WHERE语句中选择一个合适的语句
key: 实际使用的索引。如果为NULL,则没有使用索引。很少的情况下,MYSQL会选择优化不足的索引。这种情况下,可以在SELECT语句中使用USE INDEX(indexname)来强制使用一个索引或者用IGNORE INDEX(indexname)来强制MYSQL忽略索引
key_len:使用的索引的长度。在不损失精确性的情况下 ...
系统通用函数类
整理了一些常用自定义函数
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981 ...
网站用户访问速度监测分析项目,秒掉基调
网站用户访问速度监测分析项目,秒掉基调2014-07-16 18:47:36标签:服务器 网站 客户端 python运维开发网站用户访问速度监测分析项目
刚来新公司不久做运维开发,本为以为要继续做我的开源软件开发,结果领导给分了个以前基本从来没考虑的任务,监测用户访问我们网站的速度,没错,是监测所有的用户访问我们网站的速度。就跟基调一样。因为基调不能实现我们一些特殊的定制需求,所以公司准备我们自己开发一个。虽然以前没做过,但是有挑战才有意思嘛,开始走起。
首先,确定页面速度如何监控?监控什么指标?如何分析?领导的基本需求如下:
实现全国各地用户访问速度的按区域分析实现用户从浏览器开始请求到页面加载完毕的每一步骤的指标统计实现对定点区域的任务下发
到底咋做?刚开始想的是,能否通过分析网站日志来实现呢?尼马,当然不可能这么简单,因为日志里最多只能记录服务器收到请求到开始响应的时间,用户何时完全加载完你的页面,是找不到的。那咋办?先学习基调的监测方法发现,他们是在全国各个机房里埋了数万个客户端,让这些客户端定时自动访问你的网站,然后再对每个客户端的加载速度做汇总后分析。很显然我们不可能在全国 ...
密室逃脱
今天公司组织部门活动,选择密室逃脱游戏,同事说很好玩。本没有多大兴趣,既然是团队活动,也就参加吧。
地点地铁公元前站,6点下班,大家一起出发,去到已经晚上6点50,大家都没有吃饭,还比较有兴致。去到时,我们预定的2号房间还有上一批玩家还没出来,也就等一下,拍拍照。房间摆设还是挺有氛围的。一会儿,工作人员过来讲解规则。先给了2张求救卡,实在无法破解时,可以求救。毕竟关卡很多,在一次发挥时间不划算,时间到也无法体验后面关卡,建议合理使用,使用时,对着密室监控摄像头,摇晃手电筒,就会有工作人员过来帮忙。游戏不允许带手机,纸币,背包等物品,需要存储在大厅存包柜中。
我们玩的是2号密室,情节是一处监狱,紧挨着有2间牢房。我们八个人一起玩,分成2组,呆在2间房子每组3个手电。2组人互相配合,一起闯关。工作人员提示我们,2个房间必须合作,才能成功。因为紧挨着,可以通过声音交流。工作人员还特别提醒,床底和楼顶是没有线索的,不用费心(不提醒,可能大家找线索,把房顶都拆了)。
2组人分别进去, 门上锁,游戏开始。我们1号房,房间就比大学宿舍小三分之一的普通房子,灯光比较昏暗。进门大家情绪就开始调动起来,一 ...
PHP五种设计模式
设计模式只是为 Java™ 架构师准备的 —— 至少您可能一直这样认为。实际上,设计模式对于每个人都非常有用。如果这些工具不是 “架构太空人” 的专利,那么它们又是什么?为什么说它们在 PHP 应用程序中非常有用?本文解释了这些问题。
设计模式 一书将设计模式引入软件社区,该书的作者是 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides Design(俗称 “四人帮”)。所介绍的设计模式背后的核心概念非常简单。经过多年的软件开发实践,Gamma 等人发现了某些具有固定设计的模式,就像建筑师设计房子和建筑物一样,可以为浴室的位置或厨房的构造方式开发模板。使用这些模板或者说设计模式 意味着可以更快地设计更好的建筑物。同样的概念也适用于软件。设计模式不仅代表着更快开发健壮软件的有用方法,而且还提供了以友好的术语封装大型理念的方法。例如,您可以说您正在编写一个提供松散耦合的消息传递系统,也可以说你正在编写名称为观察者 的模式。用较小的示例展示模式的价值是非常困难的。这往往有些大材小用的意味,因为模式实际上是在大型代码库中发挥作用的。本 ...