您的位置:首页 > 运维架构 > Apache

apache中文url日志分析--php十六进制字符串转换

2012-01-31 15:17 387 查看
#! /usr/local/bin/php

<?php

while (($line = fgets(STDIN)) !== false) {

$str = urldecode(trim($line));

//$line = '\xba\xbd\xcc\xec\xb3\xc7';

//$line = '\xb9\xc9\xca\xd0';

//$line = '%E4%B8%9C%E6%96%B9%E9%98%B3%E5%85%89%E4%B8%8E%E6%AC%A7%E9%A3%8E%E7%BE%8E%E9%9B%A8%EF%BC%81';

$str = str_replace(array("\t","\n","\r"),'',stripcslashes($str));

echo mb_convert_encoding($str, 'GB2312', mb_detect_encoding($str , array('UTF-8','GB2312', 'GBK','LATIN1','BIG5')));

}

/**

function is_utf8($word)

{

if (preg_match("/^([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}/",$word) == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}$/",$word) == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){2,}/",$word) == true)

{

return true;

}

else

{

return false;

}

}

function is_gb2312($str)

{

for($i=0; $i<strlen($str); $i++) {

$v = ord( $str[$i] );

if( $v > 127) {

if( ($v >= 228) && ($v <= 233) )

{

if( ($i+2) >= (strlen($str) - 1)) return true; // not enough characters

$v1 = ord( $str[$i+1] );

$v2 = ord( $str[$i+2] );

if( ($v1 >= 128) && ($v1 <=191) && ($v2 >=128) && ($v2 <= 191) ) // utf编码

return false;

else

return true;

}

}

}

return true;

}

*/

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐