April 26, 2010
TBCompressor – JS和CSS压缩工具
"有朋友问到淘宝是怎么压缩js和css的,这里分享下。\n我们使用的是 YUI Compressor:\nThe YUI Compressor is a JavaScript compressor which, in addition to removing comments and white-spaces, obfuscates local variables using the smallest possible variable name. This obfuscation is safe, even when using constructs such as ‘eval’ or ‘with’ (although the compression is not optimal is those cases) Compared to jsmin, the average savings is around 20%.\nThe YUI Compressor is also able to safely compress CSS files. The decision on which …"
April 26, 2010
开源免费的简易中文分词系统SCWS – PHP版
"SCWS 是 Simple Chinese Words Segmentation 的缩写,即简易中文分词系统。\n这是一套基于词频词典的机械中文分词引擎,它能将一整段的汉字基本正确的切分成词。词是汉语的基本语素单位,而书写的时候不像英语会在词 之间用空格分开,所以如何准确而又快速的分词一直是中文分词的攻关难点。\nSCWS 在概念上并无创新成分,采用的是自行采集的词频词典,并辅以一定程度上的专有名称、人名、地名、数字年代等规则集,经小范围测试大概准确率在 90% ~ 95% 之间,已能基本满足一些中小型搜索引擎、关键字提取等场合运用。 SCWS 采用纯 C 代码开发,以 Unix-Like OS 为主要平台环境,提供共享函数库,方便植入各种现有软件系统。此外它支持 GBK,UTF-8,BIG5 等汉字编码,切词效率高。\n[推荐]首个搭载 SCWS 分词系统的中小型站内全文检索解决方案 – FTPHP!\n以下为本人在win03平台下,php5.2.5+apache2.2.11平台下推荐的方法,特别的简单,用的是gbk的字库的\n1. …"
April 25, 2010
mysql查询中in和多个or的区别
"比较IN()里面的数据 许多数据库服务器都只把IN()看作多个OR的同义词,因为它们在逻辑上是相等的。MYSQL不是这样的,它会对IN()里面的数据进行排序,然后用二分法查找个是否在列表中,这个算法的效率是O(Logn),而等同的OR子句的查找效率是O(n)。在列表很大的时候,OR子句就会变得慢得多。\n这里的语句和Oracle数据库里是一样的。"
April 24, 2010
JS内存释放问题
"一个内存释放的实例\nCollectGarbage, 是IE的一个特有属性,用于释放内存的使用方法嘛应该是,将该变量或引用对象,设置为null或delete然后在进行释放动作 在 做CollectGarbage前,要必需清楚的两个必备条件:\n引用\n– 一个对象在其生存的上下文环境之外,即会失效。\n– 一个全局的对象在没有被执用(引用)的情况下,即会失效。\n========= 美丽的分割线 =========\n//——————————————————— // JavaScript对象何时失效 //——————————————————— function testObject() { var _obj1 = new Object(); }\nfunction testObject2() { var _obj2 = new Object(); return _obj2; }\n// 示例1 testObject();\n// 示例2 testObject2()\n// 示例3 var obj3 = testObject2(); obj3 = null;\n// 示例4 var obj4 = …"
April 23, 2010
js过滤word格式
"function cleanAndPaste(html) …{ // Remove all SPAN tags html = html.replace(/]\u0026gt;/gi, “” ); // Remove Class attributes html = html.replace(/\u0026lt;(w[^\u0026gt;]*) class=([^ |\u0026gt;]*)([^\u0026gt;])/gi, “\u0026lt;$1$3″) ; // Remove Style attributes html = html.replace(/\u0026lt;(w[^\u0026gt;]*) style=”([^”]*)”([^\u0026gt;])/gi, “\u0026lt;$1$3”) ; // Remove Lang attributes html = html.replace(/\u0026lt;(w[^\u0026gt;]*) lang=([^ |\u0026gt;]*)([^\u0026gt;])/gi, “\u0026lt;$1$3”) ; // Remove XML elements and declarations html = …"
April 22, 2010
PHP生成内置图片Word文档的方法(一)
"一般,有2种方法可以导出doc文档,一种是 使用com,并且作为php的一个扩展库安装到服务器上,然后创建一个com,调用它的方法。安装过office的服务器可以调用一个叫 word.application的com,可以生成word文档,不过这种方式我不推荐,因为执行效率比较低(我测试了一下,在执行代码的时候,服务器 会真的去打开一个word客户端)。理想的com应该是没有界面的,在后台进行数据转换,这样效果会比较好,但是这些扩展一般需要收费。\n第2种方法,就是用PHP将我们的doc文档内容直接写入一个后缀为doc的文件中即可。使用这种方法不需要依赖第三方扩展,而且执行效率较高。\nword本身的功能还是很强大的,它可以打开html格式的文件,并且能够保留格式,即使后缀为doc,它也能识别正常打开。这就为我们提供了方便。但是 有一个问题,html格式的文件中的图片只有一个地址,真正的图片是保存在其他地方的,也就是说,如果将HTML格式写入doc中,那么doc中将不能包 含图片。那我们如何创建包含图片的doc文档呢?我们可以使用和html很接近的mht格式。\nmht格式和html很类似,只 …"
April 21, 2010
mysql集群强制从主服务器阻塞更新直到从服务器同步?
"Q:我怎样强制主服务器阻塞更新直到从服务器同步?\nA:使用下面的步骤:\n1.在主服务器上,执行这些语句:\nmysql\u0026gt; FLUSH TABLES WITH READ LOCK; mysql\u0026gt; SHOW MASTER STATUS; 记录SHOW语句的输出的日志名和偏移量。这些是复制坐标。2.在从服务器上,发出下面的语句,其中Master_POS_WAIT()函 数的参量是前面步骤中的得到的复制坐标值:\nmysql\u0026gt; SELECT MASTER_POS_WAIT(\u0026#39;log_name\u0026#39;, log_offset); SELECT语句阻塞直到从服务器达到指定的日志文件和偏移量。此时,从服务器与主服务器同步,语句返回。\n3.在主服务器上,发出下面的语句允许主服务器重新开始处理更新:\nmysql\u0026gt; UNLOCK TABLES; 来源:http://dev.mysql.com/doc/refman/5.1/zh/replication.html#replication-faq "
April 21, 2010
mysql集群从服务器复制传递和状态文件(master.info和relay_log.info)
"6.3.4. 复制传递和状态文件 默认情况,中继日志使用_host_name-relay-bin.nnnnnn_形 式的文件名,其中_host_name_是从服务器主机名,nnnnnn_是 序列号。用连续序列号来创建连续中继日志文件,从000001开始。从服务器跟踪索引文件中目前正 使用的中继日志。 默认中继日志索引文件名为_host_name-relay-bin.index。 默认情况,在从服务器的数据目录中创建这些文件。可以用–relay-log和–relay-log-index服 务器选项覆盖 默认文件名。参见6.8节,“复制启动选项”。\n中继日志与二进制日志的格式相同,并且可以用mysqlbinlog读取。SQL线 程执行完中继日志中的所有事件并且不再需要之后,立即自动删除它。没有直接的删除中继日志的机制,因为SQL线程可以负责完 成。然而,FLUSH LOGS可以循环中继日志,当SQL线程删除日志时会有影响。\n在下面的条件下创建新的中继日志:\n·每次I/O线程启动时创建一个新的中继日志。\n·当日志被刷新时;例如,用FLUSH LOGS或mysqladmin …"
April 20, 2010
Impossible WHERE noticed after reading const tables
"用EXPLAIN看MySQL的执行计划时经常会看到Impossible WHERE noticed after reading const tables这句话,意思是说MySQL通过读取“const tables”,发现这个查询是不可能有结果输出的。比如对下面的表和数据:\ncreate table t (a int primary key, b int) engine = innodb; insert into t values(1, 1); insert into t values(3, 1); 执 行“EXPLAIN select * from t where a = 2”时就会输出“Impossible WHERE noticed after reading const tables”。\n不明白所谓的“const tables”是什么意思,对MySQL在查询优化时竟然可以发现一个查询不可能输出结果更是感觉不可思议。按数据库中“传统”的做法,查询优化时只会访问模式定义和统计信息,而据我所知,数据库中使用的各种统计信息如EquiDepth、MaxDiff柱状图,MCV,属性的最大值、 …"
April 19, 2010
魔法引用函数 magic_quotes_gpc和magic_quotes_runtime的区别和用法
"PHP基础002: 魔法引用函数magic_quotes_gpc和magic_quotes_runtime的区别和用法\nPHP提供两个方便我们引用数据的魔法引用函数magic_quotes_gpc和magic_quotes_runtime,这两个函数如果在 php.ini设置为ON的时候,就会为我们引用的数据碰到单引号’和双引号”以及反斜线 \\ 是自动加上反斜线,帮我们自动转译符号,确保数据操作的正确运行,可是我们在php不同的版本或者不同的服务器配置下,有的 magic_quotes_gpc和magic_quotes_runtime设置为on,有的又是off,所以我们写的程序必须符合on和off两种情 况。那么magic_quotes_gpc和magic_quotes_runtime两个函数有什么区别呢?看下面的说明:\nmagic_quotes_gpc 作用范围是:WEB客户服务端; 作用时间:请求开始是,例如当脚本运行时.\nmagic_quotes_runtime 作用范围:从文件中读取的数据或执行exec()的结果或是从SQL查询中得到的; 作用时间:每次当脚本访问运行状态中产生 …"