汉字转拼音问题
这是一个非常经典的问题,同时,也是一个很难解决的问题。经典是因为,这个问题非常常见,而且有很多解决方案。 难以解决是因为,存在多音字。可以发现很多股票软件都有这问题,比如zgyh 出来的不是中国银行,而是找不到, 这是因为,中国银行的 “行” 查出来读的是 "xing" 。我篇文章我只是提供了一个原始的转换方法,就是查表。 和你以前看过的算法可能不一样的是,我加了一个二分查找,我看到的一个开源的解决方案是顺序查找的。 关于,多音字问题,我只有一个小规模的多音字表,从所有股票名称里面纠正过来的。解决方案是这样的:在查找拼音的时候, 查找一下这个字是否在多音字表里面,如果是,那么查找前后组成的词,来决定读什么。如果有谁有完整的多音字表,或者有更好的 解决方案,请给我留言。我一定拜谢。 代码 <? php /* * * 初始化 * * @param string $file 拼音代码对应表 * @return array 把这个对应表映射成array的格式 */ function pinyin_init( $file ) { $pinyin = file ( $file ); if ( empty ( $pinyin )) { throw new Exception ( " load pinyin table error. " ); } foreach ( $pinyin as $k =