|
PHP对GB编码动态转UTF-8几种方法评测(2) WHERE code_gb = \".$intGB.\" LIMIT 1\" ; $resResult = mysql_query($strSql); if ($arrCode = mysql_fetch_array($resResult)) $strRet .= u2utf8($arrCode[\"code_unicode\"]); else $strRet .= \"??\"; $i++; } else { $strRet .= $strGB{$i}; } } return $strRet; } function GB2UTF8_FILE($strGB) { if (!trim($strGB)) return $strGB; $arrLines = file(\"gb_unicode.txt\"); foreach ($arrLines as $strLine) { $arrCodeTable[hexdec(substr($strLine, 0, 6))] = hexdec(substr($strLine, 7, 6)); } $strRet = \"\"; $intLen = strlen($strGB); for ($i = 0; $i < $intLen; $i++) { if (ord($strGB{$i}) > 127) { $strCurr = substr($strGB, $i, 2); $intGB = hexdec(bin2hex($strCurr)) - 0x8080; if ($arrCodeTable[$intGB]) $strRet .= u2utf8($arrCodeTable[$intGB]); else $strRet .= \"??\"; $i++; } else { $strRet .= $strGB{$i}; } } return $strRet; } function EncodeIp($strDotquadIp) { $arrIpSep = eXPlode(\'.\', $strDotquadIp); if (count($arrIpSep) != 4) return 0; $intIp = 0; foreach ($arrIpSep as $k => $v) $intIp += (int)$v * pow(256, 3 - $k); return $intIp; //return sprintf(\'%02x%02x%02x%02x\', $arrIpSep[0], $arrIpSep[1], $arrIpSep[2], $arrIpSep[3]); } function GetMicroTime() { list($msec, $sec) = explode(\" \", microtime()); return ((double)$msec + (double)$sec);
|