拼音库创建 php
来源:互联网 发布:bgm什么意思网络用语 编辑:程序博客网 时间:2024/05/22 13:40
主要实现从一个数据库中获取中文名称并获取所有可能拼音的的大写字母组合。然后和名称一起导入另外一个数据库
<?php//通过查找拼音表匹配每个汉子对应首字母function get_firstchar($keyword){$array = array();$temp = "";$array = explode('[',file_get_contents("拼音库文本.txt"));//echo $array[3];for($i=0;$i<count($array);$i++){ if(strstr($array[$i],$keyword) != null)$temp = $temp . strtoupper(substr($array[$i],0,1));//打印数组的元素的值 //echo $array[$i],"<br>"; }return $temp;}//排列组合函数,实现所有可能大写字母组合,比如中国银行大写拼写可能为“ZGYH”“ZGYX”error_reporting( E_ALL&~E_NOTICE );function get_new_arr(){$args = func_get_args();//取得所有传入参数的数组$arr = array();foreach($args as $k=>$v){ if($args[$k+1]) {switch($k) {case 0:$arr[$k] = arr_pailie($v,$args[$k+1]);break;default:$arr[$k] = arr_pailie($arr[$k-1],$args[$k+1]);break;}}}$key = count($arr)-1;$res = implode('.',$arr[$key]);return $res;}function arr_pailie ($arr1, $arr2){$arr = array();$k = 0;foreach($arr1 as $k1=>$v1){foreach($arr2 as $k2=>$v2){$arr[$k] = $v1.",".$v2;$k++;}}return $arr;}//数据库连接,取出名称和标识$dbname="DB1";$servcon=mysql_connect(MySql数据库地址、用户名、账号);if(!$servcon){ die("Fail to connect to DataBase! Error:".mysql_error());}mysql_select_db($dbname,$servcon);$select = mysql_query("select Symbol,Name from smallsnapshoot");//数据库连接,将股票转换的结果直接输入到数据库stockdb的py_convert表中$dbname1="DB2";$servcon1=mysql_connect(<span style="font-family: Arial, Helvetica, sans-serif;">MySql数据库地址、用户名、账号</span>);if(!$servcon1){ die("Fail to connect to DataBase! Error:".mysql_error());}mysql_select_db($dbname1,$servcon1);//循环取源数据库每行名称、标识while($row = mysql_fetch_array($select)){//将汉字逐个输入进行查找并保存到$arr_list数组//$str = "平单银行";$str = $row["Name"];$len = mb_strlen($str,"utf-8");$arr_list = array();for($i=0;$i<$len;$i++){$arr[] = mb_substr($str,$i,1,"utf-8");$arr_list[$i] = get_firstchar($arr[$i]);}//echo $arr_list[3];//循环取每个字符数组字母进行匹配保存到$arr_str中//排列组合函数调用,先将字符串数组的每个元素转换为对就数组,因为本环境名称最多为三个字或四个字$arr1 = array();$arr2 = array();$arr3 = array();$arr1 = str_split($arr_list[0]);$arr2 = str_split($arr_list[1]);$arr3 = str_split($arr_list[2]);if(count($arr_list) == 4){$arr4 = array();$arr4 = str_split($arr_list[3]);$result= get_new_arr($arr1,$arr2,$arr3,$arr4);//echo count($arr_list);}else{$result= get_new_arr($arr1,$arr2,$arr3);//echo count($arr_list);}//echo $result; //对组合数据转化为数组并删除重复数组$arr_str = array();$arr_str = explode('.',$result);//echo $arr_str[1];for($i=0;$i<count($arr_str);$i++){ $arr_str[$i] =str_replace(",","",$arr_str[$i]);}$membercout = count($arr_str);$arr_str = array_unique($arr_str);//print_r($arr_str);for($i=0;$i<$membercout;$i++){ if($arr_str[$i] != null){//echo $arr_str[$i],"<br />";//$str_end .= $arr_str[$i];$py_insert = "INSERT INTO py_convert(py_short_name, py_stock_name, py_stock_symbol) VALUE('$arr_str[$i]', '$row["Name"]', '$row["Symbol"]')";$result = mysql_query($py_insert) or die("Error in query: $query. ".mysql_error()); }}//echo $str_end;}mysql_close($servcon);mysql_close($servcon1);?>建立数据库DB2中拼音表如下:<pre name="code" class="php"><?php$con=mysql_connect(数据库名称、账号、密码);if (!$con) { die('Could not connect: ' . mysql_error()); }// Create database/*if (mysql_query("CREATE DATABASE my_db",$con)) { echo "Database created"; }else { echo "Error creating database: " . mysql_error(); }*/// Create table in my_db database$dbname="DB2";mysql_select_db($dbname,$con);$sql = "CREATE TABLE py_convert ( `py_id` int(10) NOT NULL auto_increment, `py_short_name` varchar(10), `py_name` varchar(10), `py_symbol` varchar(16), PRIMARY KEY (`py_id`))";mysql_query($sql,$con);mysql_close($con);?>
因为涉及的为汉字名称,所以采用的编辑环境为UTF-8。其中排列组合函数是借鉴的别人的,自己也想了半天效果不好,关键是数据逻辑思维不清楚,可见数据思维的重要性。
自己也是边学边做,php函数的调用不是很熟练,以后要加强编程方面练习。有写得不好的地方,欢迎各位大神指正,互相交流,共同进步!
0 0
- 拼音库创建 php
- GBK->拼音PHP类
- PHP汉字转拼音
- PHP汉字转拼音
- php汉字转拼音
- PHP生成中文拼音
- PHP拼音转换
- PHP生成中文拼音
- 中文转拼音(php)
- php 汉语转换拼音
- PHP 汉字转拼音
- php汉字转拼音
- php获取汉字拼音
- php中文转拼音
- php gbk转拼音
- PHP文字拼音
- PHP汉字转拼音
- PHP拼音类
- ubuntu 平台上 安装 opencv实践
- effective c++ 笔记 (26-29)
- 类模板示例及类中成员函数的模板化
- POJ 2247 解题报告
- trigger()
- 拼音库创建 php
- 黑马程序员——Foundation基础篇
- CentOS Yum 命令详解
- div垂直居中的N种方法
- .net不能调试,mvc不能调试的解决办法。
- s5pv210的引脚端口汇总
- json对象之间的转换
- 启动eclipse的tomcat,访问tomcat出现404
- HTML5中的本地、WebSql、离线应用存储