-
-
require_once('pinyin_table.php'); -
- 함수 get_pinyin_array($string)
- {
- 전역 $pinyin_table;
- $flow = array();
- for ($i=0;$i {
- if (ord($string[$i]) >= 0x81 및 ord($string[$i]) <= 0xfe)
- {
- $h = ord($string[$i]);
- if (isset($string[$i 1]))
- {
- $i ;
- $l = ord($string[$i]);
- if (isset($ pinyin_table[$h][$l]))
- {
- array_push($flow,$pinyin_table[$h][$l]);
- }
- else
- {
- array_push($flow,$h);
- array_push($flow,$l);
- }
- }
- else
- {
- array_push($flow,ord($string[ $i]));
- }
- }
- else
- {
- array_push($flow,ord($string[$i]));
- }
- }
-
- //print_r($flow);
-
- $pinyin = array();
- $pinyin[0] = '';
- for ($i=0;$i< ;sizeof($flow);$i )
- {
- if (is_array($flow[$i]))
- {
- if (sizeof($flow[$i]) == 1 )
- {
- foreach ($pinyin을 $key => $value)
- {
- $pinyin[$key] .= $flow[$i][0];
- }
- }
- if (sizeof($flow[$i]) > 1)
- {
- $tmp1 = $pinyin;
- foreach($pinyin을 $key => $value)
- {
- $pinyin[$key] .= $flow [$i][0];
- }
- for ($j=1;$j {
- $tmp2 = $tmp1 ;
- for ($k=0;$k {
- $tmp2[$k] .= $flow[$i][$j];
- }
- array_splice($pinyin,sizeof($pinyin),0,$tmp2);
- }
- }
- }
- else
- {
- foreach($pinyin $key => $value)
- {
- $pinyin[$key] .= chr($flow[$i]);
- }
- }
- }
- 반환 $pinyin;
- }
function GetGB2312String($name)
- {
- $tostr = "";
- for($i=0;$i< ;strlen($name);$i )
- {
- $curbin = ord(substr($name,$i,1));
- if($curbin < 0x80)
- {
- $tostr .= substr($name,$i,1);
- }elseif($curbin < bindec("11000000")){
- $str = substr( $name,$i,1);
- $tostr .= "".ord($str).";";
- }elseif($curbin < bindec("11100000")){
- $str = substr($name,$i,2);
- $tostr .= "".GetUnicodeChar($str).";";
- $i = 1;
- } elseif($curbin $str = substr($name,$i,3);
- $gstr= iconv("UTF-8","GB2312",$ str);
- if(!$gstr)
- {
- $tostr .= "".GetUnicodeChar($str).";";
- }else{
- $tostr . = $gstr;
- }
-
- $i = 2;
- }elseif($curbin
- $str = substr($name,$i ,4);
- $tostr .= "".GetUnicodeChar($str).";";
-
- $i = 3;
- }elseif($curbin < 바인딩(" 11111100")){
- $str = substr($name,$i,5);
- $tostr .= "".GetUnicodeChar($str).";";
-
- $i = 4;
- }else{
- $str = substr($name,$i,6);
- $tostr .= "".GetUnicodeChar($str).";";
-
- $i = 5;
- }
- }
-
- return $tostr;
- }
-
- 함수 GetUnicodeChar($str)
- {
- $temp = "";
- for($i=0;$i
- {
- $x = decbin(ord(substr($str,$) i,1)));
- if($i == 0)
- {
- $s = strlen($str) 1;
- $temp .= substr($x,$s, 8-$s);
- }else{
- $temp .= substr($x,2,6);
- }
- }
-
- return binec($temp);
- }
$db = mysql_connect("127.0.0.1:3307", "root","123");
mysql_select_db("qq ",$db);
- $result = mysql_query("set names utf8",$db);
- $result = mysql_query("select title,group_id from groups",$db);
while ($myrow = mysql_fetch_array($result)) {
- $text1="$myrow[0]";
- $text= GetGB2312String($text1);//GB2312 인코딩 가져오기 String
- $flow = get_pinyin_array($text);//병음 가져오기
- $result2 = mysql_query("update groups set titlepinyin='$flow[0]' where group_id = $myrow[1]",$db );
- printf("%s
%s ",$text1,$flow[0]);
- }
- ?>
코드 복사
테이블에 병음 필드 제목 추가
-
- mysql>alter 테이블 그룹 제목 추가pinyin varchar(1000);
코드 복사
rpc.php가 다음으로 변경되었습니다.
-
-
- $db = mysql_connect("127.0.0.1:3307", "root"," 123");
- if(!$db) {
- // 연결할 수 없으면 오류를 표시합니다.
- echo 'ERROR: 데이터베이스에 연결할 수 없습니다.';
- } else {
- // 게시된 쿼리 문자열이 있습니까?
- if(isset($_POST['queryString'])) {
- $queryString = $_POST['queryString'];
- $length=strlen($ queryString);
mysql_select_db("qq",$db);
- $result = mysql_query("set names utf8");
- < p> // 문자열 길이가 0보다 큽니까?
- if($length>0) { (프로그래머 홈에서 편집됨 bbs.it-home.org)
- $sql="";
- if( !ereg("^[A-Za-z0-9_.-] $",$queryString))//한자가 있는 경우
- {$sql="SELECT title FROM groups WHERE title LIKE '$queryString% ' LIMIT 10";
- }else{//영어 숫자 기호
- $sql="SELECT title FROM groups WHERE titlepinyin LIKE '$queryString%' LIMIT 10";
- }
- $query = mysql_query ( $sql);
- // 쿼리 실행: LIKE '$queryString%'
- if($query) {
- while ($myrow = mysql_fetch_array($query)) {
- / / 목록에
- 를 사용하여 결과 형식을 지정할 수 있습니다.
- // onClick 함수는 텍스트 상자를 결과로 채웁니다.
- echo '
- '.$myrow[0].'
';
- }
- } else {
- echo "오류: 문제가 발생했습니다 쿼리 $sql.";
- }
- } else {
- }
- } else {
- echo '이 스크립트에 직접 액세스하면 안 됩니다!';
- }
- }
- ?>
-
코드 복사
|