PHP 汉字、拼音、unicode、声母、韵母互相转换
PHP 汉字、拼音、unicode、声母、韵母互相转换 完整的代码在: https://github.com/feiyan/ChineseWords。 共约34051个汉字。 附件说明:mysql.sql 是mysql文件words.db.tar.gz 是sqlite的DB文件words.tar.gz 是包含
完整的代码在: https://github.com/feiyan/ChineseWords。
共约34051个汉字。
附件说明:
mysql.sql 是mysql文件
words.db.tar.gz 是sqlite的DB文件
words.tar.gz 是包含示例代码和数据库的打包文件
<?php header( 'Content-Type: text/html; charset=UTF-8' ); /** * @author : FeiYan.info * @copyright: free * @example:index.php?format=json&word=ni 输出“你、尼”等 * * @param : format: json/xml(default) --默认输出XML格式 * @param : act: accurate/fuzzy(default)--模糊查询参数可以是拼音、unicode或者汉字(用于反查),精确查询使用search_index字段 * @param : page: default 1 --分页页码 * @param : size: default 10 --分页数量 * @return : array( * "word" => 汉字 "pinyin" => 拼音 "pinyin_s" => 声母 "pinyin_y" => 韵母 "type" => 声调(1,2,3,4) "unicode" => 汉字unicode * ); */ define('IM_FEIYAN', true); include_once 'config.php'; $data['words'] = null; $data_root = &$data['words']; $word = strtolower(urldecode(Filter::http_get("word"))); if( empty($word) ){ $data_root['result_code'] = 0; $data_root['desc'] = "Parameter Word Can't be Empty"; } else { $page = Filter::http_get("page"); $page = !empty($page) && intval($page)>=1 ? intval($page) : 1; $size = Filter::http_get("size"); $size = !empty($size) && intval($size)>=1 ? intval($size) : 10; $set = ( $page-1 )*$size; //fuzzy:模糊查询 accurate:精确查询 $act = Filter::http_get("act"); $act = in_array($act,array("fuzzy","accurate")) ? $act : "fuzzy"; if( $act == "fuzzy" ) { $sql = "SELECT COUNT(id) FROM words WHERE search_index LIKE '%{$word}%'"; $total = $db->getone($sql); $pages = $total%$size==0 ? intval($total/$size) : intval($total/$size)+1; $sql = "SELECT * FROM words WHERE search_index LIKE '%{$word}%' LIMIT $set,$size"; } elseif ( $act == "accurate" ) { $column = preg_match("/^[a-z]+$/",$word) ? "pinyin" : ( preg_match("/^[\\x{4e00}-\\x{9fa5}]+$/u",$word) ? "word" : "unicode"); $sql = "SELECT COUNT(id) FROM words WHERE $column LIKE '%{$word}%'"; $total = $db->getone($sql); $pages = $total%$size==0 ? intval($total/$size) : intval($total/$size)+1; $sql = "SELECT * FROM words WHERE $column LIKE '%{$word}%' LIMIT $set,$size"; } $res = $db->getall($sql); if( empty($res) ){ $data_root['result_code'] = 1; $data_root['desc'] = 'Data is Empty'; } else { foreach ( $res as &$row ) { $data_root["word"][] = array( "word" => $row["word"], "pinyin" => $row["pinyin"], "pinyin_s" => $row["pinyin_s"], "pinyin_y" => $row["pinyin_y"], "type" => $row["type"], "unicode" => "\\"".$row["unicode"]."\\"" ); } } } //导出XML或者json output( $data ); ?> //该片段来自于http://outofmemory.cn
精彩图集
精彩文章