<?php
/** * 转义字符替换 * * @param string $subject * @return string */ public static function sReplace($subject) { $search = array('<', '>', '&', '\'', '"'); $replace = array('<', '>', '&', ''', '"'); return str_replace($search, $replace, $subject); }
/** * 检查是否是中文编码 * * @param $str * @return int */ public static function chkChinese($str) { return preg_match('/[\x80-\xff]./', $str); }
/** * 检测是否GB2312编码 * * @param string $str * @return boolean false UTF-8编码 TRUE GB2312编码 */ public static function isGb2312($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)) return false; else return true; } } } return false; }
/** * 检测是否GBK编码 * * @param string $str * @param boolean $gbk * @return boolean */ public static function checkChar($str, $gbk = true) { 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 $gbk ? true : FALSE; // not enough characters $v1 = ord($str[$i + 1]); $v2 = ord($str[$i + 2]); if ($gbk) { return (($v1 >= 128) && ($v1 <= 191) && ($v2 >= 128) && ($v2 <= 191)) ? FALSE : TRUE;//GBK } else { return (($v1 >= 128) && ($v1 <= 191) && ($v2 >= 128) && ($v2 <= 191)) ? TRUE : FALSE; } } } } return $gbk ? TRUE : FALSE; }
?>