当前位置: 代码迷 >> PHP >> UTF-8的 \xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8 这个是什么意思?该如何解决
  详细解决方案

UTF-8的 \xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8 这个是什么意思?该如何解决

热度:26   发布时间:2016-04-28 22:28:39.0
UTF-8的 \xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8 这个是什么意思?
DZ(UTF-8)用户名检测的一个正则:\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8,这一段表示什么意思,很多中文英文都无法通过。

文件:/uc_client/model/user.php
函数:check_username()


function check_username($username) {
$guestexp = '\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8';
$len = $this->dstrlen($username);
if($len > 150 || $len < 3 || preg_match("/\s+|^c:\\con\\con|[%,\*\"\s\<\>\&]|$guestexp/is", $username)) {
return FALSE;
} else {
return TRUE;
}
}

function dstrlen($str) {
if(strtolower(UC_CHARSET) != 'utf-8') {
return strlen($str);
}
$count = 0;
for($i = 0; $i < strlen($str); $i++){
$value = ord($str[$i]);
if($value > 127) {
$count++;
if($value >= 192 && $value <= 223) $i++;
elseif($value >= 224 && $value <= 239) $i = $i + 2;
elseif($value >= 240 && $value <= 247) $i = $i + 3;
     }
     $count++;
}
return $count;
}



查看了网上很多资料,很多人都说“\xA1\xA1”指代全角,“\xAC\xA3”指代汉字“欣”?是这样吗,其他的是指代什么





------解决方案--------------------
echo "\xA1\xA1
------解决方案--------------------
\xAC\xA3
------解决方案--------------------
^Guest
------解决方案--------------------
^\xD3\xCE\xBF\xCD
------解决方案--------------------
\xB9\x43\xAB\xC8";
 
------解决方案--------------------
?
------解决方案--------------------
^Guest
------解决方案--------------------
^游客
------解决方案--------------------
笴?