铁血霸主 2007-8-1 22:36
介绍一组中文处理工具函数
<p>/* 中文处理工具函数<BR>--- 空格 ---<BR> string GBspace(string) --------- 每个中文字之间加空格<BR> string GBunspace(string) ------- 每个中文字之间的空格清除<BR> string clear_space(string) ------- 用来清除多余的空格<BR><BR>--- 转换 ---<BR> string GBcase(string,offset) --- 将字符串内的中英文字转换大小写<BR> offset : "upper" - 字符串全转为大写 (strtoupper)<BR> "lower" - 字符串全转为小写 (strtolower)<BR> "ucwords" - 将字符串每个字第一个字母改大写 (ucwords)<BR> "ucfirst" - 将字符串第一个字母改大写 (ucfirst)<BR> string GBrev(string) ----------- 颠倒字符串<BR><BR>--- 文字检查 ---<BR> int GB_check(string) ----------- 检查字符串内是否有 GB 字,有会返回 true,<BR> 否则会返回false<BR> int GB_all(string) ------------- 检查字符串内所有字是否有 GB 字,是会返回 true,<BR> 否则会返回false<BR> int GB_non(string) ------------- 检查字符串内所有字并不是 GB 字,是会返回 true,<BR> 否则会返回false<BR> int GBlen(string) -------------- 返回字符串长度(中文字只计一字母)<BR><BR>--- 查找、取代、提取 ---<BR> int/array GBpos(haystack,needle,[offset]) ---- 查找字符串 (strpos)<BR> offset : 留空 - 查找第一个出现的位置<BR> int - 由该位置搜索出现的第一个位置<BR> "r" - 查找最后一次出现的位置 (strrpos)<BR> "a" - 将所有查找到的字储存为数组(返回 array)<BR><BR> string GB_replace(needle,str,haystack) -- 查找与取代字符串 (str_replace)<BR> string GB_replace_i(needle,str_f,str_b,haystack) -- 不检查大小写查找与取代字符串<BR> needle - 查找字母<BR> str - 取代字母 ( str_f - 该字母前, str_b 该字母后)<BR> haystack - 字符串<BR><BR> string GBsubstr(string,start,[length]) -- 从string提取出由开始到结尾或长度<BR> length的字符串。<BR> 中文字只计一字母,可使用正负数。<BR> string GBstrnear(string,length) -- 从 string提取最接近 length的字符串。<BR> length 中 中文字计2个字母。<BR><BR>--- 注意 ---<BR> 如使用由 Form 返回的字符串前,请先替字符串经过 stripslashes() 处理,除去多余的 \ 。<BR><BR> 用法:在原 <a href="http://www.phpchina.com/javascript:;" onClick="javascript:tagshow(event, 'PHP');" target="_self"><u><strong>PHP</strong></u></a> <a href="http://www.phpchina.com/javascript:;" onClick="javascript:tagshow(event, '%B4%FA%C2%EB');" target="_self"><u><strong>代码</strong></u></a>内加上:<BR> include ("GB.inc");<BR> 即可使用以上工具函数。<BR>*/<BR><BR>function GBlen($string) {<BR> $l = strlen($string);<BR> $ptr = 0;<BR> $a = 0;<BR> while ($a < $l) {<BR> $ch = substr($string,$a,1);<BR> $ch2 = substr($string,$a+1,1);<BR> if (ord($ch) >= HexDec("0x81") && ord($ch2) >= HexDec("0x40")) {<BR> $ptr++;<BR> $a += 2;<BR> } else {<BR> $ptr++;<BR> $a++;<BR> } // END IF<BR> } // END WHI <BR></p> <center><input type="image" onclick=copyToClipBoard() src="http://www.phpchina.com/images/phpcn_book_bu_tj.gif" border="0"></center>