|
php 版本要求: (php 4 >= 4.4.3, php 5 >= 5.1.3)
說明:bool mb_check_encoding ([ string $var = NULL [, string $encoding = mb_internal_encoding() ]] )
檢查指定的字節(jié)流在指定的編碼里是否有效。它能有效避免所謂的“無效編碼攻擊(Invalid Encoding Attack)”。
參數(shù)
var
要檢查的字節(jié)流。如果省略了這個參數(shù),此函數(shù)會檢查所有來自最初請求所有的輸入。
encoding
期望的編碼。
返回值
成功時返回 TRUE, 或者在失敗時返回 FALSE。
為了檢查是否一個字符串編碼正確在utf - 8中,我建議以下函數(shù)實(shí)現(xiàn) mb_check_encoding():
復(fù)制代碼 代碼如下:
<?php
function check_utf8($str) {
$len = strlen($str);
for($i = 0; $i < $len; $i++){
$c = ord($str[$i]);
if ($c > 128) {
if (($c > 247)) return false;
elseif ($c > 239) $bytes = 4;
elseif ($c > 223) $bytes = 3;
elseif ($c > 191) $bytes = 2;
else return false;
if (($i + $bytes) > $len) return false;
while ($bytes > 1) {
$i++;
$b = ord($str[$i]);
if ($b < 128 || $b > 191) return false;
$bytes--;
}
}
}
return true;
} // end of check_utf8
?>
php技術(shù):php使用mb_check_encoding檢查字符串在指定的編碼里是否有效,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。