在一般的应用中,PHP的程序员会比较少的注意到php程序的细微算法对性能影响的问题,但在处理一些比较占用资源的东西的时候,适当调整算法,会让程序的性能整倍的提高。
这几天,我在研究分词的算法,如果不预先载入词典的话,那种运算速度简直惨不忍睹,因此我考虑了预先载入词典在一个数组中的做法,我手上有一个十多万词汇的词典,开始的时候,用这样的方式载入:
这几天,我在研究分词的算法,如果不预先载入词典的话,那种运算速度简直惨不忍睹,因此我考虑了预先载入词典在一个数组中的做法,我手上有一个十多万词汇的词典,开始的时候,用这样的方式载入:
在php中,下载http资源比较常用的一种做法就是用 file_get_contents 这个函数,但这函数无法获得http头的信息,会给一些应用带来不方便,因此我写了一个http下载类来解决这个问题,测试感觉速度和file_get_contents相差无几。
如果你的个人站月收入过万本篇对你已经没有意义,关于商业站点的规划我会在以后写到,如果你的站点收入在0-9000元/月,我建议您仔细看完全文。
个人站点的赢利是个让很多站长头疼的问题,一开始没流量愁,有了流量没钱赚还愁,赚了点钱却看不到将来的发展方向更愁。为了把这个东西写的好一点,看来今晚要多泡两杯咖啡了。今天的心情不错,公司明天放假,进入值班日程,今天领红包(过节费),虽然只有几K,但心里挺高兴的,毕竟可以让大脑放松一下了。今天公司的王工看了偶的文章,说偶写策划都写出职业病来了,连文章都写的这么干巴,连点故事性都没有,观点再好恐怕也要被许多个人站的站长PASS了。当时嘴上没认错,不过仔细想想,有道理,怪不得人家一个月几十K呢。呵呵,这是题外话。不过从这篇开始,我会尽量避免写成策划书,努力写成故事书,一看就明白的那种,呵呵。
个人站点的赢利是个让很多站长头疼的问题,一开始没流量愁,有了流量没钱赚还愁,赚了点钱却看不到将来的发展方向更愁。为了把这个东西写的好一点,看来今晚要多泡两杯咖啡了。今天的心情不错,公司明天放假,进入值班日程,今天领红包(过节费),虽然只有几K,但心里挺高兴的,毕竟可以让大脑放松一下了。今天公司的王工看了偶的文章,说偶写策划都写出职业病来了,连文章都写的这么干巴,连点故事性都没有,观点再好恐怕也要被许多个人站的站长PASS了。当时嘴上没认错,不过仔细想想,有道理,怪不得人家一个月几十K呢。呵呵,这是题外话。不过从这篇开始,我会尽量避免写成策划书,努力写成故事书,一看就明白的那种,呵呵。
作了一年的WEB应用,在这里面无疑核心就是数据的出出进进。而在作数据条件查询时,经常会遇到多项查询条件的组合,对于这种情况下SQL语句的生成经过这么长时间的实践加思考,最终给自己定下了一个规范性的编写方法。
举例如下:
现有数据库表,表名:student,表内字段如下:ID,GENDER,NAME,NUM,CLASSID。
举例如下:
现有数据库表,表名:student,表内字段如下:ID,GENDER,NAME,NUM,CLASSID。
1.递归法
递归是指在函数中显式的调用它自身。
利用递归法实现树状结构的特点是写入数据速度较快,显示速度较慢(在树的分支/层次较多的情况下尤其明显)。适用与写入数据量大,树的结构复杂的情况下。
数据结构(以mysql为例)
递归是指在函数中显式的调用它自身。
利用递归法实现树状结构的特点是写入数据速度较快,显示速度较慢(在树的分支/层次较多的情况下尤其明显)。适用与写入数据量大,树的结构复杂的情况下。
数据结构(以mysql为例)
根据一位朋友在BLOG上的回复研究了一下两个日期比价的方法
在网上找了一下,有一些很经典的例子
就这两个时间进行比较
/*日期比较*/
$Date_1="2007-07-12";
$Date_2="2007-06-27";
/*
在网上找了一下,有一些很经典的例子
就这两个时间进行比较
/*日期比较*/
$Date_1="2007-07-12";
$Date_2="2007-06-27";
/*
直接相减是不正确的,你需要这样来做:
**得到目前的日期和时间
在Unix中,时间的表示方式为计算从1970年1月1日零时起所过去的秒数,这称为UNIX 时间戳(Unix Epoch)。
如果我们有这样一段的代码:
**得到目前的日期和时间
在Unix中,时间的表示方式为计算从1970年1月1日零时起所过去的秒数,这称为UNIX 时间戳(Unix Epoch)。
如果我们有这样一段的代码:
主要的论点是集中在SELECT something FROM table
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) < = 5; 上,我试验了半天,结果还是出错,今天看了MYSQL的函数,终于出来了结果,不敢独享,贴出来供大家研究,(虽然技术含量不高,别扔我柿子就行,呵呵)
MYSQL的TO_DAYS(DATE)函数是这样说明的:
传回DATE到公元1年的总日数,我测试了一下
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) < = 5; 上,我试验了半天,结果还是出错,今天看了MYSQL的函数,终于出来了结果,不敢独享,贴出来供大家研究,(虽然技术含量不高,别扔我柿子就行,呵呵)
MYSQL的TO_DAYS(DATE)函数是这样说明的:
传回DATE到公元1年的总日数,我测试了一下
(1)date
用法:
date(格式,[时间]);
如果没有时间参数,则使用当前时间.
格式是一个字符串,其中以下字符有特殊意义:
U 替换成从一个起始时间(好象是1970年1月1日)以来的秒数
Y 替换成4位的年号.
y 替换成2位的年号.