kylin's profileKylin's SitePhotosBlogListsMore ![]() | Help |
|
4/30/2007 Philips今天去飞利浦移动体验馆兼职了,
时间:9:30am--9:30pm,
地点:王府井新东安广场-1楼
好累好累~~改天有力气了再写吧
五一真的是劳动节啊~~
今晚经过南一,看见草地上灯光下有只蚯蚓,我给她喝了口可乐,她爽死了
哈哈,我没被累趴下,回来了,yeah 4/28/2007 中文分词(3.1)常用PHP函数做中文分词,本质就是字符串处理,因此,认识一下php字符串处理等常用的PHP函数是十分必要的,下面精选了20个函数并注释说明: //字符串处理函数库 int strlen(string str) //返回字符串str的长度 array explode(string separator,string str[,int limit) //用字符串separator将另一个字符串str分开,如果separator为""则返回FALSE,否则返回字符串str分开后的子串数组 string trim(string str[,string charlist]) //从字符串头尾去除空白字符,也可指定要去除的字符 //注:空白字符包括:" ","\t","\n","\r","\0","\x0B",即ASCII字符----0x20,0x09,0x0A,0x0D,0x00,0x0B int ord(string str) //返回字符串str第一个字符的ASCII码 string bin2hex(string str) //将二进制数据转换为十六进制表达式 string substr(string str,int start[,int length]) //返回字符串str中从start处开始的length长度的子串 mixed str_replace(mixed search,mixed replace,mixed subject[,int $count]) //返回在subject中搜索search并用replace替换后的字符串或数组 //如果search、replace都是用数组形式提供的,则替换关系是一一对应的 int strpos(string haystack,string needle[,int offset]) //返回在haystack中needle第一次出现的位置。如果找不到needle,将返回FALSE或0。 //注:可以用第三个参数offset指定haystack开始搜寻的位置,但返回值仍相对于haystack的开始位置 //数学函数库 int hexdec(string hex_string) //返回与hex_string参数所表示的十六进制数等值的十进制数 //注1:所能转换的最大数值为 7fffffff,即十进制的 2147483647。 //注2:将遇到的所有非十六进制字符替换成 0。这样,所有左边的零都被忽略,但右边的零会计入值中。如 hexdec("that") 和 hexdec("a0") 都将返回 160 //变量函数库 void unset(mixed var[,mixed var[, ...]]) //销毁指定的变量。(注意:PHP4中unset()不再是真正的函数,而是一个语句,因此没有返回值) bool isset(mixed var[,mixed var[, ...]]) //检测变量是否设置,var存在则返回TRUE,否则返回FALSE //注:若想检测常量是否已设置,可使用 defined bool is_array(mixed var) //检测变量是否是数组 void var_dump(mixed expression[,mixed expression[,...]]) //显示关于一个或多个表达式的结构信息,包括表达式的类型和值。数组将递归展开值,通过缩进显示其结构。 //数组函数库 int count(mixed var[,int mode]) //返回变量中单元数目,var通常是数组。 //注:如果不是数组,将返回1(例外:count(NULL)=0) //文件系统函数库 string dirname(string path) //给出一个包含有指向一个文件的全路径的字符串,并返回去掉文件名后的目录名,推荐使用反斜线"/"作为路径分隔符 resource fopen(string filename,string mode[,int use_include_path[,resource zcontext]]) //将filename指定的名字资源以mode方式绑定到一个流上 //注1:mode可能值为----r,r+,w,w+,a,a+,x,x+ //注2:如果也需要在 include_path 中搜寻文件的话,可以将可选的第三个参数 use_include_path 设为 '1' 或 TRUE。 //注3: 不同的操作系统家族具有不同的行结束习惯。当你写入一个文本文件并想插入一个新行时,你需要使用符合你操作系统的行结束符号。基于 Unix 的系统使用 \n 作为行结束字符,基于 Windows 的系统使用 \r\n 作为行结束字符,基于 Macintosh 的系统使用 \r 作为行结束字符。如果写入文件时使用了错误的行结束符号,则其它应用程序打开这些文件时可能会表现得很怪异。Windows 下提供了一个文本转换标记('t')可以透明地将 \n 转换为 \r\n。与此对应你还可以使用 'b' 来强制使用二进制模式,这样就不会转换你的数据。要使用这些标记,要么用 'b' 或者用 't' 作为 mode 参数的最后一个字符。 //注4:在 Windows 平台上,要小心转义文件路径中的每个反斜线,或者用斜线。) //更正: 在区分二进制文件和文本文件的系统上(如 Windows) 打开文件时,fopen() 函数的 mode 参数要加上 'b'。 string fgets(int handle[,int length]) //从handle指向的文件中读取一行并返回长度最多为(length-1)字节的字符串,碰到换行符(包含在返回值中)、EOF则提前停止。注:如无指定,length默认为1024字节。 bool fclose(resource handle) //将handle指向的文件关闭,成功则返回TRUE //正则表达式函数库 bool ereg(string pattern,string str[,array regs]) //以区分大小写的形式在str中寻找与给定的pattern所匹配的子串 //注:如果找到匹配的字串,且函数调用了第三个参数regs,则匹配项将被存入数组regs供使用,$regs[0]包含整个匹配的字符串,$regs[1]包含第一个字串 mixed preg_replace(mixed pattern,mixed replacement,mixed subject[,int limit]) //执行正则表达式的搜索和替换。在subject中搜索pattern模式的匹配项并替换为replacement。 //注:如果指定了limit,则仅替换limit个匹配,否则所有匹配项都会被替换。 int preg_match(string pattern,string subject[,array matches[,int flags]]) //进行正则表达式匹配。在subject中搜索与pattern模式的相匹配的内容。 //注:如果提供了matches,则搜索结果会保存在matches数组中。$matches[0]将包含整个匹配结果。$matches[1]将包含第一个匹配结果,以此类推。 //时间日期函数库 string microtime(void) //返回格式为“msec sec”的字符串,其中 sec 是当前的 Unix 时间戳,msec 是微秒部分。本函数仅在支持 gettimeofday() 系统调用的操作系统下可用。 //注1:字符串的两部分都是以秒为单位返回的。 注: 4/27/2007 中文分词(2.5)UTF-8编码(2)为什么要用 UTF-8? 首先 UCS 和 Unicode 只是分配整数给字符的编码表。现在存在好几种将一串字符表示为一串字节的方法。最显而易见的两种方法是将 Unicode 文本存储为 2个或 4个字节序列的串。这两种方法的正式名称分别为 UCS-2 和 UCS-4。除非另外指定, 否则大多数的字节都是这样的(Big-endian convention)。将一个 ASCII 或 Latin-1 的文件转换成 UCS-2 只需简单地在每个 ASCII 字节前插入 0x00。如果要转换成 UCS-4,则必须在每个 ASCII 字节前插入三个 0x00。 在 Unix 下使用 UCS-2 (或 UCS-4) 会导致非常严重的问题:用这些编码的字符串会包含一些特殊的字符,比如 '\0' 或 '/', 它们在 文件名和其他 C 库函数参数里都有特别的含义。另外,大多数使用 ASCII 文件的 UNIX 下的工具,如果不进行重大修改是无法读取 16 位的字符的。基于这些原因,在文件名、文本文件、环境变量等地方,UCS-2 不适合作为 Unicode 的外部编码。 在 ISO 10646-1 Annex R 和 RFC 2279 里定义的 UTF-8 编码没有这些问题,它是在 Unix 风格的操作系统下使用 Unicode 的明显的方法。 UTF-8 有以下特性:
xxx 的位置由字符编码数的二进制表示的位填入,越靠右的 x 具有越少的特殊意义。只用最短的那个足够表达一个字符编码数的多字节串,注意在多字节串中,第一个字节的开头"1"的数目就是整个串中字节的数目。 例如: 注释: 4/24/2007 中文分词(2.4)UTF-8编码(1)(Googling...)
(Googled,发现很多文章都推荐、引用这篇来自中国Linux论坛的文章----《UTF-8 and Unicode FAQ》)
这篇文章将说明在Linux上使用Unicode/UTF-8所需要的信息。Unicode不仅允许你处理事实上存在于地球上的任何语言文字,而且提供了一个全面的数学与技术符号集,因此可以简化科学信息交换。 UTF-8编码提供一种简便而向后兼容的方法,使得那种完全围绕ASCII设计的操作系统(比如UNIX,Linux)也可以使用UNICODE。 什么是 UNICODE? 历史上, 有两个独立的, 创立单一字符集的尝试. 一个是国际标准化组织(ISO)的 ISO 10646 项目, 另一个是由(一开始大多是美国的)多语言软件制造商组成的协会组织的 Unicode 项目. 幸运的是, 1991年前后, 两个项目的参与者都认识到, 世界不需要两个不同的单一字符集. 它们合并双方的工作成果, 并为创立一个单一编码表而协同工作. 两个项目仍都存在并独立地公布各自的标准, 但 Unicode 协会和 ISO/IEC JTC1/SC2 都同意保持 Unicode 和 ISO 10646 标准的码表兼容, 并紧密地共同调整任何未来的扩展. 什么是 UCS 和 ISO 10646? 国际标准ISO 10646定义了通用字符集 (Universal Character Set, UCS). UCS 是所有其他字符集标准的一个超集. 它保证与其他字符集是双向兼容的. 就是说, 如果你将任何文本字符串翻译到 UCS格式, 然后再翻译回原编码, 你不会丢失任何信息。 UCS 包含了用于表达所有已知语言的字符. 不仅包括拉丁语,希腊语, 斯拉夫语,希伯来语,阿拉伯语,亚美尼亚语和乔治亚语的描述, 还包括中文, 日文和韩文这样的象形文字, 以及 平假名, 片假名, 孟加拉语, 旁遮普语果鲁穆奇字符(Gurmukhi), 泰米尔语, 印.埃纳德语(Kannada), Malayalam, 泰国语, 老挝语, 汉语拼音(Bopomofo), Hangul, Devangari, Gujarati, Oriya, Telugu 以及其他数也数不清的语. 对于还没有加入的语言, 由于正在研究怎样在计算机中最好地编码它们, 因而最终它们都将被加入. 这些语言包括 Tibetian, 高棉语, Runic(古代北欧文字), 埃塞俄比亚语, 其他象形文字, 以及各种各样的印-欧语系的语言, 还包括挑选出来的艺术语言比如 Tengwar, Cirth 和 克林贡语(Klingon). UCS 还包括大量的图形的, 印刷用的, 数学用的和科学用的符号, 包括所有由 TeX, Postscript, MS-DOS,MS-Windows, Macintosh, OCR 字体, 以及许多其他字处理和出版系统提供的字符。 ISO 10646 定义了一个 31 位的字符集. 然而, 在这巨大的编码空间中, 迄今为止只分配了前 65534 个码位 (0x0000 到 0xFFFD). 这个 UCS 的 16位子集称为 基本多语言面 (Basic Multilingual Plane, BMP). 将被编码在 16 位 BMP 以外的字符都属于非常特殊的字符(比如象形文字), 且只有专家在历史和科学领域里才会用到它们. 按当前的计划, 将来也许再也不会有字符被分配到从 0x000000 到 0x10FFFF 这个覆盖了超过 100 万个潜在的未来字符的 21 位的编码空间以外去了. ISO 10646-1 标准第一次发表于 1993 年, 定义了字符集与 BMP 中内容的架构. 定义 BMP 以外的字符编码的第二部分 ISO 10646-2 正在准备中, 但也许要过好几年才能完成. 新的字符仍源源不断地加入到 BMP 中, 但已经存在的字符是稳定的且不会再改变了。 UCS 不仅给每个字符分配一个代码, 而且赋予了一个正式的名字. 表示一个 UCS 或 Unicode 值的十六进制数, 通常在前面加上 "U+", 就象 U+0041 代表字符"拉丁大写字母A". UCS 字符 U+0000 到 U+007F 与 US-ASCII(ISO 646) 是一致的, U+0000 到 U+00FF 与 ISO 8859-1(Latin-1) 也是一致的. 从 U+E000 到 U+F8FF, 已经 BMP 以外的大范围的编码是为私用保留的。 Unicode 和 ISO 10646 不同在什么地方? Unicode 协会公布的 Unicode 标准 严密地包含了 ISO 10646-1 实现级别3的基本多语言面. 在两个标准里所有的字符都在相同的位置并且有相同的名字。Unicode 标准额外定义了许多与字符有关的语义符号学, 一般而言是对于实现高质量的印刷出版系统的更好的参考. Unicode 详细说明了绘制某些语言(比如阿拉伯语)表达形式的算法, 处理双向文字(比如拉丁与希伯来文混合文字)的算法和 排序与字符串比较 所需的算法, 以及其他许多东西。 另一方面, ISO 10646 标准, 就象广为人知的 ISO 8859 标准(欧洲计算机制造商协会ECMA在上世纪80年代中期设计,并被国际标准化(ISO)组织采纳为国际标准,ISO 8859系列字符集目前有15个字符集)一样, 只不过是一个简单的字符集表. 它指定了一些与标准有关的术语, 定义了一些编码的别名, 并包括了规范说明, 指定了怎样使用 UCS 连接其他 ISO 标准的实现, 比如 ISO 6429 和 ISO 2022. 还有一些与 ISO 紧密相关的, 比如 ISO 14651 是关于 UCS 字符串排序的。 4/22/2007 中文分词(2.3)字符集简史(引)(这篇文章将说说编码问题,没想到搜到这么切题的文章----《UTF-8字符集基础》,以及《The Basics of UTF-8》) 4/15/2007 FedoraCore5(7)Web配置
4/11/2007 谷歌拼音输入法因为google,谷歌拼音输入法刚发布,我就使用尝鲜了,当时的感觉是特别像一直在用的紫光拼音。
没想到几天后,爆出新闻----“谷歌盗用搜狗拼音词库”。
汗,鉴于搜狗词库事件,可以看出谷歌确实中国本土化了。 |
|
|