这篇文章主要为大家详细介绍了PHP 自动转换编码代码,支持数组,具有一定的参考价值,可以用来参考一下。
对PHP自动转换编码代码,支持数组感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!
/**
* PHP自动转换编码代码,支持数组
*
* @param
* @arrange 五一二笔记网: q1010.com
**/
// 自动转换字符集 支持数组转换
function auto_charset($fContents, $from='gbk', $to='utf-8') {
$from = strtoupper($from) == 'UTF8' ? 'utf-8' : $from;
$to = strtoupper($to) == 'UTF8' ? 'utf-8' : $to;
if (strtoupper($from) === strtoupper($to) || empty($fContents) || (is_scalar($fContents) && !is_string($fContents))) {
//如果编码相同或者非字符串标量则不转换
return $fContents;
}
if (is_string($fContents)) {
if (function_exists('mb_convert_encoding')) {
return mb_convert_encoding($fContents, $to, $from);
} elseif (function_exists('iconv')) {
return iconv($from, $to, $fContents);
} else {
return $fContents;
}
} elseif (is_array($fContents)) {
foreach ($fContents as $key => $val) {
$_key = auto_charset($key, $from, $to);
$fContents[$_key] = auto_charset($val, $from, $to);
if ($key != $_key)
unset($fContents[$key]);
}
return $fContents;
}
else {
return $fContents;
}
}
/*** 来自四海网(www.q1010.com) ***/
当我们在接受未知客户端提交的数据,由于各客户端的编码不统一,但在我们的服务器端最终只能以一种编码方式来处理,这种情况下就会涉及到一个将接受到的字符转换为特定编码的问题。
/**
* PHP自动转换编码代码,支持数组
*
* @param
* @arrange 五一二笔记网: q1010.com
**/
function isGb2312($string) {
for($i=0; $i 127) {
if( ($v >= 228) && ($v < = 233) )
{
if( ($i+2) >= (strlen($string) - 1)) return true;
$v1 = ord( $string[$i+1] );
$v2 = ord( $string[$i+2] );
if( ($v1 >= 128) && ($v1 < =191) && ($v2 >=128) && ($v2 < = 191) )
return false;
else
return true;
}
}
}
return true;
}
function isUtf8($string) {
return preg_match('%^(?:
[\x09\x0A\x0D\x20-\x7E] # ASCII
| [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
| \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)*$%xs', $string);
}
/*** 来自四海网(www.q1010.com) ***/
这里我们就可以使以上任何一个函数来实现编码的检测。并将其转换成指定的编码。
/**
* PHP自动转换编码代码,支持数组
*
* @param
* @arrange 五一二笔记网: q1010.com
**/
$str = isGb2312($_GET['str'],'gbk') ? iconv('gbk','utf-8',$_GET['str']) : $_GET['str'];
/*** 来自四海网(www.q1010.com) ***/
本文来自:http://www.q1010.com/173/813-0.html
注:关于PHP 自动转换编码代码,支持数组的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。
关键词:转换编码
四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。