April 26, 2010
开源免费的简易中文分词系统SCWS – PHP版
"\u003cp\u003eSCWS 是 Simple Chinese Words Segmentation 的缩写,即简易中文分词系统。\u003c/p\u003e\n\u003cp\u003e这是一套基于词频词典的机械中文分词引擎,它能将一整段的汉字基本正确的切分成词。词是汉语的基本语素单位,而书写的时候不像英语会在词 之间用空格分开,所以如何准确而又快速的分词一直是中文分词的攻关难点。\u003c/p\u003e\n\u003cp\u003eSCWS 在概念上并无创新成分,采用的是自行采集的词频词典,并辅以一定程度上的专有名称、人名、地名、数字年代等规则集,经小范围测试大概准确率在 90% ~ 95% 之间,已能基本满足一些中小型搜索引擎、关键字提取等场合运用。 SCWS 采用纯 C 代码开发,以 Unix-Like OS 为主要平台环境,提供共享函数库,方便植入各种现有软件系统。此外它支持 GBK,UTF-8,BIG5 等汉字编码,切词效率高。\u003c/p\u003e\n\u003cp\u003e[推荐]首个搭载 SCWS 分词系统的中小型站内全文检索解决方案 – \u003ca href=\"http://www.ftphp.com/\"\u003eFTPHP!\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以下为本人在win03平台下,php5.2.5+apache2.2.11平台下推荐的方法,特别的简单,用的是gbk的字库的\u003c/p\u003e\n\u003cp\u003e1. …\u003c/p\u003e"
April 25, 2010
mysql查询中in和多个or的区别
"\u003cp\u003e\u003cstrong\u003e比较IN()里面的数据\u003c/strong\u003e\n许多数据库服务器都只把IN()看作多个OR的同义词,因为它们在逻辑上是相等的。MYSQL不是这样的,它会对IN()里面的数据进行排序,然后用二分法查找个是否在列表中,这个算法的效率是O(Logn),而等同的OR子句的查找效率是O(n)。在列表很大的时候,OR子句就会变得慢得多。\u003c/p\u003e\n\u003cp\u003e这里的语句和Oracle数据库里是一样的。\u003c/p\u003e"
April 24, 2010
JS内存释放问题
"\u003cp\u003e一个内存释放的实例\u003c/p\u003e\n\u003cp\u003eCollectGarbage, 是IE的一个特有属性,用于释放内存的使用方法嘛应该是,将该变量或引用对象,设置为null或delete然后在进行释放动作\n在 做CollectGarbage前,要必需清楚的两个必备条件:\u003c/p\u003e\n\u003cp\u003e引用\u003c/p\u003e\n\u003cp\u003e– 一个对象在其生存的上下文环境之外,即会失效。\u003c/p\u003e\n\u003cp\u003e– 一个全局的对象在没有被执用(引用)的情况下,即会失效。\u003c/p\u003e\n\u003cp\u003e========= 美丽的分割线 =========\u003c/p\u003e\n\u003cp\u003e//———————————————————\n// JavaScript对象何时失效\n//———————————————————\nfunction testObject() {\nvar _obj1 = new Object();\n}\u003c/p\u003e\n\u003cp\u003efunction testObject2() {\nvar _obj2 = new Object();\nreturn _obj2;\n}\u003c/p\u003e\n\u003cp\u003e// 示例1\ntestObject();\u003c/p\u003e\n\u003cp\u003e// 示例2\ntestObject2()\u003c/p\u003e\n\u003cp\u003e// 示例3\nvar obj3 = testObject2();\nobj3 = null;\u003c/p\u003e\n\u003cp\u003e// 示例4\nvar obj4 = …\u003c/p\u003e"
April 23, 2010
js过滤word格式
"\u003cp\u003efunction cleanAndPaste(html) …{\n// Remove all SPAN tags\nhtml = html.replace(/]\u003cem\u003e\u0026gt;/gi, “” );\n// Remove Class attributes\nhtml = html.replace(/\u0026lt;(w[^\u0026gt;]*) class=([^ |\u0026gt;]*)([^\u0026gt;]\u003c/em\u003e)/gi, “\u0026lt;$1$3″) ;\n// Remove Style attributes\nhtml = html.replace(/\u0026lt;(w[^\u0026gt;]*) style=”([^”]*)”([^\u0026gt;]\u003cem\u003e)/gi, “\u0026lt;$1$3”) ;\n// Remove Lang attributes\nhtml = html.replace(/\u0026lt;(w[^\u0026gt;]*) lang=([^ |\u0026gt;]*)([^\u0026gt;]\u003c/em\u003e)/gi, “\u0026lt;$1$3”) ;\n// Remove XML elements and declarations\nhtml = html.replace(/\u0026lt;??xml[^\u0026gt;] …\u003c/p\u003e"
April 22, 2010
PHP生成内置图片Word文档的方法(一)
"\u003cp\u003e一般,有2种方法可以导出doc文档,一种是 使用com,并且作为php的一个扩展库安装到服务器上,然后创建一个com,调用它的方法。安装过office的服务器可以调用一个叫 word.application的com,可以生成word文档,不过这种方式我不推荐,因为执行效率比较低(我测试了一下,在执行代码的时候,服务器 会真的去打开一个word客户端)。理想的com应该是没有界面的,在后台进行数据转换,这样效果会比较好,但是这些扩展一般需要收费。\u003c/p\u003e\n\u003cp\u003e第2种方法,就是用PHP将我们的doc文档内容直接写入一个后缀为doc的文件中即可。使用这种方法不需要依赖第三方扩展,而且执行效率较高。\u003c/p\u003e\n\u003cp\u003eword本身的功能还是很强大的,它可以打开html格式的文件,并且能够保留格式,即使后缀为doc,它也能识别正常打开。这就为我们提供了方便。但是 有一个问题,html格式的文件中的图片只有一个地址,真正的图片是保存在其他地方的,也就是说,如果将HTML格式写入doc中,那么doc中将不能包 含图片。那我们如何创建包含图片的doc文档呢?我们可以使用和html很接近的mht格式。\u003c/p\u003e\n\u003cp\u003emht格式和html很类似,只 …\u003c/p\u003e"
April 21, 2010
mysql集群强制从主服务器阻塞更新直到从服务器同步?
"\u003cp\u003e\u003cstrong\u003eQ\u003c/strong\u003e:我怎样强制主服务器阻塞更新直到从服务器同步?\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eA\u003c/strong\u003e:使用下面的步骤:\u003c/p\u003e\n\u003cp\u003e1.在主服务器上,执行这些语句:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003emysql\u0026gt; FLUSH TABLES WITH READ LOCK;\n\u003c/code\u003e\u003c/pre\u003e\u003cpre tabindex=\"0\"\u003e\u003ccode\u003emysql\u0026gt; SHOW MASTER STATUS;\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e记录SHOW语句的输出的日志名和偏移量。这些是复制坐标。2.在从服务器上,发出下面的语句,其中Master_POS_WAIT()函 数的参量是前面步骤中的得到的复制坐标值:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003emysql\u0026gt; SELECT MASTER_POS_WAIT(\u0026#39;log_name\u0026#39;, log_offset);\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eSELECT语句阻塞直到从服务器达到指定的日志文件和偏移量。此时,从服务器与主服务器同步,语句返回。\u003c/p\u003e\n\u003cp\u003e3.在主服务器上,发出下面的语句允许主服务器重新开始处理更新:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003emysql\u0026gt; UNLOCK TABLES;\n\n来源:http://dev.mysql.com/doc/refman/5.1/zh/replication.html#replication-faq\n\u003c/code\u003e\u003c/pre\u003e"
April 21, 2010
mysql集群从服务器复制传递和状态文件(master.info和relay_log.info)
"\u003ch3 id=\"634复制传递和状态文件\"\u003e6.3.4. 复制传递和状态文件\u003c/h3\u003e\n\u003cp\u003e默认情况,中继日志使用_host_name-relay-bin.nnnnnn_形 式的文件名,其中_host_name_是从服务器主机名,\u003cem\u003ennnnnn_是 序列号。用连续序列号来创建连续中继日志文件,从000001开始。从服务器跟踪索引文件中目前正 使用的中继日志。 默认中继日志索引文件名为_host_name-relay-bin.index\u003c/em\u003e。 默认情况,在从服务器的数据目录中创建这些文件。可以用–relay-log和–relay-log-index服 务器选项覆盖 默认文件名。参见\u003ca href=\"http://dev.mysql.com/doc/refman/5.1/zh/replication.html#replication-options\" title=\"6.8. Replication Startup Options\"\u003e6.8节,“复制启动选项”\u003c/a\u003e。\u003c/p\u003e\n\u003cp\u003e中继日志与二进制日志的格式相同,并且可以用\u003cstrong\u003emysqlbinlog\u003c/strong\u003e读取。SQL线 程执行完中继日志中的所有事件并且不再需要之后,立即自动删除它。没有直接的删除中继日志的机制,因为SQL线程可以负责完 成。然而,FLUSH LOGS可以循环中继日志,当SQL线程删除日志时会有影响。\u003c/p\u003e\n\u003cp\u003e在下面的条件下创建新的中继日志:\u003c/p\u003e\n\u003cp\u003e·每次I/O线程启动时创建一个新的中继日志。\u003c/p\u003e\n\u003cp\u003e·当日志被刷新时;例如,用FLUSH LOGS或\u003cstrong\u003emysqladmin …\u003c/strong\u003e\u003c/p\u003e"
April 20, 2010
Impossible WHERE noticed after reading const tables
"\u003cp\u003e用EXPLAIN看MySQL的执行计划时经常会看到Impossible WHERE noticed after reading const tables这句话,意思是说MySQL通过读取“const tables”,发现这个查询是不可能有结果输出的。比如对下面的表和数据:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e create table t (a int primary key, b int) engine = innodb;\n insert into t values(1, 1);\n insert into t values(3, 1);\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e执 行“EXPLAIN select * from t where a = 2”时就会输出“Impossible WHERE noticed after reading const tables”。\u003c/p\u003e\n\u003cp\u003e不明白所谓的“const tables”是什么意思,对MySQL在查询优化时竟然可以发现一个查询不可能输出结果更是感觉不可思议。按数据库中“传统”的做法,查询优化时只会访问模式定义和统计信息,而据我所知,数据库中使用的各种统计信息如EquiDepth、MaxDiff柱状图,MCV,属性的最 …\u003c/p\u003e"
April 19, 2010
魔法引用函数 magic_quotes_gpc和magic_quotes_runtime的区别和用法
"\u003cp\u003ePHP基础002: 魔法引用函数magic_quotes_gpc和magic_quotes_runtime的区别和用法\u003c/p\u003e\n\u003cp\u003ePHP提供两个方便我们引用数据的魔法引用函数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两个函数有什么区别呢?看下面的说明:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003emagic_quotes_gpc\u003c/strong\u003e\n作用范围是:WEB客户服务端;\n作用时间:请求开始是,例如当脚本运行时.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003emagic_quotes_runtime\u003c/strong\u003e\n作用范围:从文件中读取的数据或执行exec()的结果或是从SQL查询中得到的;\n作用时间:每次当脚本访问运行状态中产生 …\u003c/p\u003e"
April 19, 2010
windows下apache+php平台,虚拟主机安全设置
"\u003cp\u003e先按这里的文档对服务器系统安全做设置: \u003ca href=\"http://blog.haohtml.com/index.php/archives/3438\"\u003ehttp://blog.haohtml.com/index.php/archives/3438\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e对于php.ini的设置有:\n1.修改为安全\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003esafe_mode = true\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e2.禁用一些系统函数\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003edisable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e3.禁用com组件调用\u003c/p\u003e\n\u003cp\u003e将 ;com.allow_dcom = true 修改为 com.allow_dcom = false 启用并禁用\n4.指定上传文件的临时目录\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eupload_tmp_dir = “d:\\php\\upload_tmp”\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e5.启用特别字符转义功能\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emagic_quotes_gpc = On\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e6.关闭 …\u003c/p\u003e"
April 19, 2010
服务器安全设置.卸载极其危险的 Wscript.Shell 和 shell.application 组件
"\u003cp\u003e载极其危险的 Wscript.Shell 和 shell.application 组件,这2 个组件的主要作用是asp调用exe程序。\u003c/p\u003e\n\u003cp\u003e几乎所有正常的网站都用不到,而要黑服务器却几乎都需要调用这个组件来执行操作\u003c/p\u003e\n\u003cp\u003e运 行:regsvr32 /u c:\\winnt\\system32\\wshom.ocx 即可卸载 Wscript.Shell\u003c/p\u003e\n\u003cp\u003e运 行:regsvr32 /u c:\\winnt\\system32\\shell32.dll 即可卸载 shell.application\u003c/p\u003e\n\u003cp\u003e如果是window2000/20003则将winnt改为windows再运行即可\u003c/p\u003e"
April 19, 2010
同服务器多网站的安全设置(windows server+apache+php)
"\u003cp\u003e在windows环境下,如果用IIS做webserver,可以配合ntfs为每个网站设置不同的用户权限,从而让一个网站的程序只能访问自己目 录下的内容.\u003c/p\u003e\n\u003cp\u003e而在windows的apache环 境下,由于apache默认是最高的system权限,因此非常危险,若不做安全设置,随便传一个php shell到任何一个网站上,就能控制整台服务器。\u003c/p\u003e\n\u003cp\u003e要实现这个目标,需要做以下设置:\u003c/p\u003e\n\u003cp\u003e1、在vhost中设置 open_basedir,设置后,php程序将只能打开规定目录下的内容(此指令不受安全模式是否打开的限制)。如下。同时最好把php.ini的 upload_tmp_dir 目录也添加进去,否则可能无法正常上传文件。\u003c/p\u003e\n\u003cp\u003eServerAdmin \u003ca href=\"mailto:admin@abc.com\"\u003eadmin@abc.com\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eDocumentRoot D:/abc\u003c/p\u003e\n\u003cp\u003eServerName \u003ca href=\"http://www.abc.com/\"\u003ewww.abc.com\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eErrorLog logs/abc.com-error_log\u003c/p\u003e\n\u003cp\u003eCustomLog logs/abc.com-access_log common\u003c/p\u003e\n\u003cp\u003ephp_admin_value open_basedir “D:/abc;D:/php/temp” …\u003c/p\u003e"
April 17, 2010
JW Media Player 中文文档
"\u003cp\u003e\u003cstrong\u003eThe JW MP3 Player (built with Adobe’s Flash) is the easiest way to add live music or podcasts to your website. It supports playback of a single MP3 file or an RSS, XSPF or ASX playlist, a wide range of flashvars (settings) for tweaking both behavior and appearance and an extensive, documented javascript/actionscript API.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e官方网址 \u003ca href=\"http://www.jeroenwijering.com/?item=JW_Media_Player\"\u003ehttp://www.jeroenwijering.com\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这篇文档包含了JW MP3 Player,JW FLVPlayer,JW Media Player,JW Image Rotator的安装方法和配置方\n法\u003c/p\u003e\n\u003cp\u003eJW PLAYERS 3.11 文档\u003c/p\u003e\n\u003cp\u003e1,安装 (在你的站点里嵌入)\n2,参数 (配置) …\u003c/p\u003e"
April 17, 2010
JW Player使用简介
"\u003cp\u003e\u003cstrong\u003e一、JW Player是什么?\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e简单地说,JW Player是一种基于flash的交互式网页媒体播放器。它是由Jeroen 和 Wijering共同建立的LongTail Video所开发,问世于2005年,当时仍名不经传的YouTube首次采用的播放器就是JW Player。官方网址: \u003ca href=\"http://www.longtailvideo.com/\"\u003ehttp://www.longtailvideo.com/\u003c/a\u003e。\u003c/p\u003e\n\u003cp\u003eJW Player含:FLV Player、WMV Player、Image Rotator和Desktop Player四种,除了最后一种实为桌面播放器,其他三种都是网页播放器。本篇内容仅限FLV Player。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e二、JW FLV Media Player简介\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eJW FLV Media Player可播放Adobe Flash Player所支持的媒体,具体包括:FLV、MP4、MP3、AAC、JPG、PNG和GIF等,还支持RTMP、HTTP、实时视频流、各种播放清单 格式、灵活的设置和广泛的javascript API。此外它还提供多种外观、功能性插件来扩展播放器,以便我们可以分享、推荐、搜索、分析甚至广告投放。 …\u003c/p\u003e"
April 17, 2010
vi显示行号
"\u003cp\u003e在VI的命令模式下输入“:set nu”\u003c/p\u003e\n\u003cp\u003e或者修改vi配置文件“vi ~/.vimrc”,在其中添加“set nu”\u003c/p\u003e\n\u003cp\u003e在VI的命令模式下输入“:set nu”,就有行号了。\u003c/p\u003e\n\u003cp\u003e但是想将这个设置写进VI的配置文件,就\u003c/p\u003e\n\u003ch1 id=\"vi-vimrc\"\u003evi ~/.vimrc\u003c/h1\u003e\n\u003cp\u003e在这个文件中,添加\u003c/p\u003e\n\u003cp\u003eset nu\u003c/p\u003e\n\u003cp\u003e就行了\u003c/p\u003e\n\u003cp\u003eset nu — to display line no\u003c/p\u003e\n\u003cp\u003eset nonu — not to display line no\u003c/p\u003e\n\u003cp\u003ectrl + g 可以知道cursor的那一行的行数\u003c/p\u003e\n\u003cp\u003eshift+g可以到最后一行。在:下输入行号,可到达对应行\u003c/p\u003e"