程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 拼音庫創建 php

拼音庫創建 php

編輯:關於PHP編程

拼音庫創建 php


主要實現從一個數據庫中獲取中文名稱並獲取所有可能拼音的的大寫字母組合。然後和名稱一起導入另外一個數據庫

 

";  
	}
	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(MySql數據庫地址、用戶名、賬號);
	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

 

因為涉及的為漢字名稱,所以采用的編輯環境為UTF-8。其中排列組合函數是借鑒的別人的,自己也想了半天效果不好,關鍵是數據邏輯思維不清楚,可見數據思維的重要性。

自己也是邊學邊做,php函數的調用不是很熟練,以後要加強編程方面練習。有寫得不好的地方,歡迎各位大神指正,互相交流,共同進步!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved