是为了检查一个字符串是否为一个或多个拼音音节组成。网上搜了一下,多推荐暴力匹配,做了个字典查询的PHP,希望有用,转载请标明:guipo.com
<?php /* isdanpin($str): 判断一个字符串是否为单音节 checkshuangpin($str): 判断一个字符串是否为双拼音 对音节是否为标准拼音有疑问的请自行修改字典
http://guipo.com
*/
$dict = array( "a" => array("a","an","ai","ang","ao"), "b" => array("ba","bo","bai","bei","bao","ban","ben","bang","beng","bi","bie","biao","bian","bin","bing","bu"), "c" => array("cha","che","chi","chai","chao","chou","chan","chen","chang","cheng","chong","chu","chua","chuai","chuan","chuang","chui","chun","chuo", "ca","ce","ci","cai","cao","cou","can","cen","cang","ceng","cong","cu","cuan","cui","cun","cuo"), "d" => array("da","de","dai","dei","dao","dou","dan","den","dang","deng","di","die","diao","diu","dian","ding","du","dun","duo","dui","duan","dong","dia"), "e" => array("e","ei","en","eng","er"), "f" => array("fa","fo","fei","fou","fan","fen","fang","feng","fu"), "g" => array("ga","ge","gai","gei","gao","gou","gan","gen","gang","geng","gong","gu","gua","guai","guan","guang","gui","gun","guo"), "h" => array("ha","he","hai","hei","hao","hou","hen","hang","heng","han","hong","hu","hua","huai","huan","huang","hui","hun","huo"), "j" => array("ji","jia","jie","jiao","jiu","jian","jin","jiang","jing","jiong","ju","juan","jue","jun"), "k" => array("ka","ke","kai","kou","kan","ken","kang","keng","kao","kei","kong","ku","kua","kuai","kuan","kuang","kui","kun","kuo"), "l" => array("la","le","lai","lei","lao","lou","lan","lang","leng","li","lia","lie","liao","liu","lian","lin","liang","ling","lo","long","lu","lv","luan","lve","lun","luo"), "m" => array("ma","mo","me","mai","mao","mou","man","men","mang","meng","mi","mie","miao","miu","mian","min","ming","mu","mei"), "n" => array("na","nai","nan","nang","nao","ne","nei","nen","neng","ni","nian","niang","niao","nie","nin","ning","niu","nong","nou","nu","nv","nuan","nve","nuo"), "o" => array("o","ou"), "p" => array("pa","po","pai","pao","pou","pan","pen","pang","peng","pi","pie","piao","pian","pin","ping","pu","pei"), "q" => array("qi","qia","qie","qiao","qiu","qian","qin","qiang","qing","qiong","qu","quan","que","qun"), "r" => array("re","ri","rao","rou","ran","ren","rang","reng","rong","ru","rua","ruan","rui","run","ruo"), "s" => array("sha","she","shi","shai","shao","shou","shan","shen","shang","sheng","shei","shu","shua","shuai","shuan","shuang","shui","shun","shuo", "sa","se","si","sai","sao","sou","san","sen","sang","seng","song","su","suan","sui","sun","suo"), "t" => array("ta","te","tai","tao","tou","tan","tang","teng","tong","ti","tie","tiao","tian","ting","tu","tuo","tun","tuan","tui"), "w" => array("wa","wo","wai","wei","wan","wen","wang","weng","wu"), "x" => array("xi","xia","xie","xiao","xiu","xian","xin","xiang","xing","xiong","xu","xuan","xue","xun"), "y" => array("ya","yao","you","yan","yang","yu","ye","yue","yuan","yi","yin","yun","ying","yo","yong"), "z" => array("zha","zhe","zhi","zhai","zhao","zhou","zhan","zhen","zhang","zheng","zhei","zhong","zhu","zhua","zhuai","zhuan","zhuang","zhui","zhun","zhuo", "za","ze","zi","zai","zao","zou","zang","zeng","zan","zei","zen","zong","zu","zuan","zui","zun","zuo") );//no i/u/v
function checkheader($str) { global $dict; $result = array(); if (isset($dict[$str[0]])) { foreach ($dict[$str[0]] as $key => $value) { if (strpos($str, $value) === 0) { array_push($result, substr($str, strlen($value))); } } if (count($result) > 0) return $result; } return false;
}
function isdanpin($str) { global $dict; if (isset($dict[$str[0]])) { foreach ($dict[$str[0]] as $key => $value) { if (strcasecmp($str, $value) == 0) return true; } } return false; }
function checkshuangpin($str) { $rest = checkheader($str); if (is_array($rest)) { foreach ($rest as $key => $value) { if (isdanpin($value)) return true; } }
return false; }
?>