日期:2013-06-09  浏览次数:20493 次

今天在看一个关于编码的问题,发现有一张表:UNICODE汉字内码表.就想着怎么样来进行相互的转换,把表COPY下来,处理成UNICODE个文件(key.txt),汉字一个文件(value.txt),并且按照升序来进行排列,这样,两个文件内的同一行就是对应关系了.

接下来就是如果接收的是UNICODE串,则先找key.txt中UNICODE出现的位置,再去找相应value.txt的值;反之也是.
但在找的过程,刚开始发现竟然找不到值(array_search),排查后发现原来用(file)函数读取文件时,是把行末也一起读取进来,即(\n)也在数组内,通过(array_walk)对数组进行过滤,把空格等都去掉,这样就可以正常工作了;原来还有使用(array_filter)进行过滤,但后来发现此函数只能数组进行过滤,并不进行数组内容处理.
array_filter()用法
function odd($var) {
    return ($var % 2 == 1);
}

function even($var) {
    return ($var % 2 == 0);
}

$array1 = array ("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array (6, 7, 8, 9, 10, 11, 12);

echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));

array_walk()用法
<?php
$fruits = array ("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");

function test_alter (&$item1, $key, $prefix) {//$item1为数组的具体内容项,$key为下标,可无;$prefix为外界参数,可无
    $item1 = "$prefix: $item1";
}

array_walk ($fruits, 'test_alter', 'fruit');

?>
//实际应用array_walk()中的函数模型为:
function strTrim(&$item1)
{
 $item1 = trim($item1);
}
array_walk($aValue,"strTrim");
 

附UNICODE汉字内码表

啊:21834 阿:38463 埃:22467 挨:25384 哎:21710 唉:21769 哀:21696 皑:30353 癌:30284 蔼:34108
矮:30702 艾:33406 碍:30861 爱:29233 隘:38552 鞍:38797 氨:27688 安:23433 俺:20474 按:25353 暗:26263 岸:23736 胺:33018 案:26696 肮:32942 昂:26114 盎:30414 凹:20985 敖:25942 熬:29100 翱:32753 袄:34948 傲:20658 奥:22885 懊:25034 澳:28595 芭:33453 捌:25420
扒:25170 叭:21485 吧:21543 笆:31494 八:20843 疤:30116 巴:24052 拔:25300 跋:36299 靶:38774 把:25226 耙:32793 坝:22365 霸:38712 罢:32610 爸:29240 白:30333 柏:26575 百:30334 摆:25670 佰:20336 败:36133 拜:25308 稗:31255 斑:26001 班:29677 搬:25644 扳:25203
般:33324 颁:39041 板:26495 版:29256 扮:25198 拌:25292 伴:20276 瓣:29923 半:21322 办:21150 绊:32458 邦:37030 帮:24110 梆:26758 榜:27036 膀:33152 绑:32465 棒:26834 磅:30917 蚌:34444 镑:38225 傍:20621 谤:35876 苞:33502 胞:32990 包:21253 褒:35090 剥:21093
薄:34180 雹:38649 保:20445 堡:22561 饱:39281 宝:23453 抱:25265 报:25253 暴:26292 豹:35961 鲍:40077 爆:29190 杯:26479 碑:30865 悲:24754 卑:21329 北:21271 辈:36744 背:32972 贝:36125 钡:38049 倍:20493 狈:29384 备:22791 惫:24811 焙:28953 被:34987 奔:22868
苯:33519 本:26412 笨:31528 崩:23849 绷:32503 甭:29997 泵:27893 蹦:36454 迸:36856 逼:36924 鼻:40763 比:27604 鄙:37145 笔:31508 彼:24444 碧:30887 蓖:34006 蔽:34109 毕:27605 毙:27609 毖:27606 币:24065 庇:24199 痹:30201 闭:38381 敝:25949 弊:24330 必:24517
辟:36767 壁:22721 臂:33218 避:36991 陛:38491 鞭:38829 边:36793 编:32534 贬:36140 扁:25153 便:20415 变:21464 卞:21342 辨:36776 辩:36777 辫:36779 遍:36941 标:26631 彪:24426 膘:33176 表:34920 鳖:40150 憋:24971 别:21035 瘪:30250 彬:24428 斌:25996 濒:28626
滨:28392 宾:23486 摈:25672 兵:20853 冰:20912 柄:26564 丙:19993 秉:31177 饼:39292 炳:28851 病:30149 并:24182 玻:29627 菠:33760 播:25773 拨:25320 钵:38069 波:27874 博:21338 勃:21187 搏:25615 铂:38082 箔:31636 伯:20271 帛:24091 舶:33334 脖:33046 膊:33162
渤:28196 泊:27850 驳:39539 捕:25429 卜:21340 哺:21754 补:34917 埠:22496 不:19981 布:24067 步:27493 簿:31807 部:37096 怖:24598 擦:25830 猜:29468 裁:35009 材:26448 才:25165 财:36130 睬:30572 踩:36393 采:37319 彩:24425 菜:33756 蔡:34081 餐:39184 参:21442
蚕:34453 残:27531 惭:24813 惨:24808 灿:28799 苍:33485 舱:33329 仓:20179 沧:27815 藏:34255 操:25805 糙:31961 槽:27133 曹:26361 草:33609 厕:21397 策:31574 侧:20391 册:20876 测:27979 层:23618 蹭:36461 插:25554 叉:21449 茬:33580 茶:33590 查:26597 碴:30900
搽:25661 察:23519 岔:23700 差:24046 诧:35815 拆:25286 柴:26612 豺:35962 搀:25600 掺:25530 蝉:34633 馋:39307 谗:35863 缠:32544 铲:38130 产:20135 阐:38416 颤:39076 昌:26124 猖:29462 场:22330 尝:23581 常:24120 长:38271 偿:20607 肠:32928 厂:21378 敞:25950
畅:30021 唱:21809 倡:20513 超:36229 抄:25220 钞:38046 朝:26397 嘲:22066 潮:28526 巢:24034 吵:21557 炒:28818 车:36710 扯:25199 撤:25764 掣:25507 彻:24443 澈:28552 郴:37108 臣:33251 辰:36784 尘:23576 晨:26216 忱:24561 沉:27785 陈:38472 趁:36225 衬:34924
撑:25745 称:31216 城:22478 橙:27225 成:25104