='5.0') ?
array_combine
(
$_TDataKey
,
$_TDataValue
) :
$this
->Arr_Combine(
$_TDataKey
,
$_TDataValue
);
arsort(
$_Data
);
reset(
$_Data
);
if
(
$_Code
!= 'gb2312')
$_String
=
$this
->U2_Utf8_Gb(
$_String
);
$_Res
= '';
for
(
$i
=0;
$i160
) {
$_Q
= ord(
substr
(
$_String
, ++
$i
, 1));
$_P
=
$_P
*256 +
$_Q
- 65536; }
$_Res
.=
$this
->Pinyins(
$_P
,
$_Data
);
}
return
$_Res
;
}
function
Pinyins(
$_Num
,
$_Data
){
if
(
$_Num
>0 &&
$_Num
<160 )
return
chr
(
$_Num
);
elseif
(
$_Num
-10247)
return
'';
else
{
foreach
(
$_Data
as
$k
=>
$v
){
if
(
$v
<=
$_Num
)
break
; }
return
$k
;
}
}
function
U2_Utf8_Gb(
$_C
){
$_String
= '';
if
(
$_C
< 0x80){
$_String
.=
$_C
;
}
elseif
(
$_C
< 0x800){
$_String
.=
chr
(0xC0 |
$_C
>>6);
$_String
.=
chr
(0x80 |
$_C
& 0x3F);
}
elseif
(
$_C
< 0x10000){
$_String
.=
chr
(0xE0 |
$_C
>>12);
$_String
.=
chr
(0x80 |
$_C
>>6 & 0x3F);
$_String
.=
chr
(0x80 |
$_C
& 0x3F);
}
elseif
(
$_C
< 0x200000) {
$_String
.=
chr
(0xF0 |
$_C
>>18);
$_String
.=
chr
(0x80 |
$_C
>>12 & 0x3F);
$_String
.=
chr
(0x80 |
$_C
>>6 & 0x3F);
$_String
.=
chr
(0x80 |
$_C
& 0x3F);
}
return
iconv('UTF-8', 'GB2312',
$_String
);
}
function
Arr_Combine(
$_Arr1
,
$_Arr2
){
for
(
$i
=0;
$iPinyin
(' 中 华 人 民','UTF8');
?>