ホームページ  >  記事  >  バックエンド開発  >  PHP文字列をハッシュコードに変換(中国語を含む)

PHP文字列をハッシュコードに変換(中国語を含む)

WBOY
WBOYオリジナル
2016-07-30 13:29:522063ブラウズ

//全幅文字を半幅の文字に変換してください

to、 'h'、 'i' '、' j '、

' k '、' l '、' m '、' n '、' o '、' p '、' q '、' r ' 、 ' S' 、 'T' 、

'U' 、 'V' 、 'W' 、 'X' 、 'Y' 、

'Z' 、 'a' 、 'b' 、 'c' 、 'd'、

、 'p'、 'q'、 'r'、 '、'、 ''、 '、'、 '、'、 ''、 '。 %' 、 '#' 、

'! ' 、 '@' 、 '&' 、 '(' , ')' 、

'<' 、 '>' 、 '"' 、 ''' 、 '?' ,

0', '1', '2', '3', '4',

'5', '6', '7', '8', '9',

「あ」 '、'B'、'C'、'D'、'E'、

'F'、'G'、'H'、'I'、'J'、

'K'、'L'、 'M'、'N'、'O'、

'P'、'Q'、'R'、'S'、'T'、

'U'、'V'、'W'、'X ', 'Y' ,

, 'k'、'l'、'm'、'n'、

'o'、'p'、'q'、'r'、's'、

' t'、'u'、' v'、'w'、'x'、

'y'、'z'、'-'、' '、':'、

'.'、','、 '/'、'%'、'#'、

'!'、'@'、'&'、'('、')'、

'<'、'>'、'"'、 「」、「?」、

'~'、'`'

);

return str_replace($DBC, $SBC, $str) // 全角から半角へ

}

//文字をASCIIコードに変換

function asc_encode($c )

{

$len = strlen($c);

$a = 0;

while ($a < $len)

$ ud = 0;

if (ord($ c{$a}) >=0 && ord($c{$a})<=127)

: c {$a})-192)*64 + (ord($c{$a+1})-128);

$a += 2; }) >=224 && ord($c{$a})

{

{$a+1})-128)*64 + ($c{$a+2}) -128); $a}) >=240 && ord($c{$a})

-128)*4096 + (ord($c{$a+2})-128)*64 + (ord($c{$a+1})-128)*64 + a+3}) -128);

$ud = (ord($c{$a})-248)*16777216 + (ord($c{$a+1})-128)*262144 + (ord($c{ $a+2})-128) *4096 + (ord($c{$a+3})-128)*64 + (ord($c{$a+4})-128);

$a += 5;

}

else if (ord($c{$a}) >=252 && ord($c{$a})<=253)

{

= (ord($c{$a})-252)*1073741824 + (ord($c{$a+1})-128)*16777216 + (ord($c{$a+2})-128) * 262144 + (ord($c{$a+3})-128)*4096 + (ord($c{$a+4})-128)*64 + (ord($c{$a+5} ) -128);

$a += 6;

}

else if (ord($c{$a}) >=254 && ord($c{$a})<=255)

{ //error

$ud = 0;

$a++;

}else{

$ud = 0;

$ud = 0; }

$scill .= "$ud";

}

return $scill;

}

//将字串转变成hashcode

function hashCode($s){

$arr_str_str(

= $

len) ($arr_str) ;

$h灰 = 0 ;

for($i=0; $i<$len; $i++){

if(ord($arr_str[$i])>127){

$_str $arr_str[$i].$ arr_str[$i+1].$arr_str[$i+2];

$i+=2;

}else{

$ac_str = $arr_str[$i];

}

$hash = (int)($hash*31 + asc_encode($ac_str)) == 0) {

//31% で可能

$hash &= 0x7fffffff;

}

else{

// $hash = ($ hash & 0x7ffffff) - 2147483648;

}

}

return $hash;

}

PHP アカウントを保存し、ハッシュコードを入力してログインし、PHP アカウントにログインします。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。