当前位置:首页 > 日记 > 正文

PHP编码转换函数自动转换字符集以支持数组转换。

PHP编码转换函数自动转换字符集以支持数组转换。
复制代码代码如下所示:
自动转换字符集支持数组转换
功能auto_charset(fcontents美元,美元= 'gbk,美元= 'utf-8){
strtoupper美元=(= = 'utf8美元的'utf-8美元);
美元= strtoupper($ = = 'utf8)'utf-8:美元;
如果(strtoupper(美元)= strtoupper(美元)| |空(美元fcontents)(is_scalar($ fcontents)| |!is_string($ fcontents))){
如果相同或非字符串编码不是标量转换。
返回的fcontents;
}
如果(is_string($ fcontents)){
如果(function_exists('mb_convert_encoding ')){
返回mb_convert_encoding(fcontents美元,美元,美元);
} elseif(function_exists('iconv ')){
返回iconv($,$,$ fcontents);
{人}
返回的fcontents;
}
} elseif(is_array($ fcontents)){
foreach(fcontents美元美元美元关键= val){
_key = auto_charset美元(美元关键,美元,美元);
fcontents美元_key } = { $(美元价值,auto_charset美元,美元);
如果(键)!= $ _key)
撤消($ fcontents { $关键});
}
返回的fcontents;
}
{其他
返回的fcontents;
}
}

当我们处于客户端提交的未知数据时,由于客户端编码不统一,但在我们的服务器端只能以编码的方式处理,本例将涉及到一个转换程序接受特定编码问题的字符。
这可能是想直接使用iconv转码,但我们知道iconv函数有两个参数作为输入和输出编码的编码,而现在我们不知道接受字符串的编码是什么,如果这个时候能收到什么好的字符编码。
总的来说,有两个解决这个问题的办法。

方案I
当客户端提交数据时,它指定了编码的提交,这需要一个变量来指定编码。
$字符串_get美元{ 'charset} 'gbk ' = iconv('gbk ','utf-8,_get美元{ 'str ' }):_get美元'str'} {;
在这种情况下,如果没有协议,或者我们不能控制客户,看来这个方案的使用不是很好。

方案二
直接从服务器端检测到接收到的数据编码。
这个方案当然是理想的。现在,你如何检测一个字符的编码在这种情况下,在PHP中,在mb_string延伸mb_check_encoding提供我们需要的功能。
$str = mb_check_encoding($ _get { 'str},'gbk)('gbk iconv,'utf-8,_get美元{ 'str ' }):_get美元'str'} {;
但这需要开放的mb_string的延伸,在某些情况下,我们可能没有打开这个扩展我们的生产服务器。在这种情况下,我们需要使用下面的函数来判断编码。
以下功能不是我自己写的
复制代码代码如下所示:
功能isgb2312($string){
($ i = 0;$ i 127){
如果(($ = 228))($ < = 233)
{
如果(($我+ 2)=(strlen($字符串)- 1))返回true;
V1 =美元ORD($字符串{ $我+ 1 });
V2 =美元ORD($字符串{ $我+ 2 });
如果(($ = 128))($ = 128)($ V2 = 191)
返回false;
其他的
返回true;
}
}
}
返回true;
}
功能isutf8($string){
返回preg_match(% ^(:
{ x09 x0a x0d X20 - x7e ASCII # }
{ XC2 - XDF } { X80 - XBF }非超长字节| #
xe0 { xA0 - XBF } { X80 - XBF }不包括overlongs | #
{ XE1 - XeF XEC夕} { X80 - XBF } { 2 }直| # 3字节
固定{ X9F } { X80 - X80 - XBF }不包括代理人| #
| # xf0 { X90 - XBF } { X80 - XBF } { 2 }面1-3
{ XF1 - xf3 } { X80 - XBF } { 3 }面4-15 | #
| # 幅国土{ X80 - x8f } { X80 - XBF } { 2 }平面16
)* $ % XS,为字符串);
}

在这里,我们可以使上述函数中的任何一个实现代码检测,并将其转换为指定的代码。
$str = isgb2312($ _get { 'str},'gbk)('gbk iconv,'utf-8,_get美元{ 'str ' }):_get美元'str'} {;

相关文章

诺基亚X音乐青蛙ROM第一支持一键刷

诺基亚X音乐青蛙ROM第一支持一键刷

支持,音乐,诺基亚,一键,刷机,3月28日的最新消息是诺基亚X洗液青蛙ROM是刷精灵和青蛙排名技术的独家亮相。同时,它一直是第一个支持诺基亚X一键刷机。从现在起,用户可以刷ROM包到诺基亚X的画笔向导,这样你就可以享受青蛙青蛙ROM的完美体验。 …

爱思助手 V7.98.19 发布:虚拟定位新

爱思助手 V7.98.19 发布:虚拟定位新

爱思助手 V7.98.19 发布:虚拟定位新增“模拟轨迹”、支持 iOS 14 iTunes 刷机,爱思助手,刷机,模拟,虚拟定位,支持,工具,功能,驱动,爱思助手 Windows 版在近日进行了更新,最新版本为 V7.98.19 ,主要包括新增虚拟定位新增模拟轨迹功能、优化解决 iTunes …

以Oracle8i数据库字符集乱码问题的

以Oracle8i数据库字符集乱码问题的

数据库,乱码问题,字符集,电脑软件,Oracle8i,Oracle课程被看着是Oracle 8i字符集乱码问题的分析和解决。1。对问题的描述 SQL工作表是窗口图形界面的SQL语句编辑器。那些喜欢窗口界面,用户界面的用户,该工具是比较流行的SQL / plus.but从Orac…

安全教育平台登录入口广西地址 安

安全教育平台登录入口广西地址 安

安全教育平台登录入口广西地址 安全教育平台广西登录入口网址,平台,登录,学校,支持,地址,安全教育,点击,活动,在学校安全教育平台中,各个地区都有自己的登录通道,那么安全教育平台登录入口广西地址是什么呢?下面小编就为大家带来安全教育平台登录入口…

安全教育平台登录入口上海市地址

安全教育平台登录入口上海市地址

安全教育平台登录入口上海市地址 上海市安全教育平台登录入口网址,平台,登录,学校,地址,支持,上海,安全教育,资源库,作为我国非常有名的魔都,上海学校安全教育平台也渐入了各个上海学校,那么安全教育平台登录入口上海市地址是什么呢?下面小编就为大家…

微信Mac电脑版的微信扫描二维码登

微信Mac电脑版的微信扫描二维码登

支持,扫描二维码,版本,电脑软件,Mac,许多朋友都期待Mac的在线版本。微信版只能扫描微信二维码而不是直接输入用户名和密码的手机。下面是一个详细的介绍。 微信Mac版在线: 喜欢的网页,微信Mac版只能扫描二维码通过手机而不是输入用户名和密码…

云闪付app下载 云闪付是国家正规平

云闪付app下载 云闪付是国家正规平

云闪付app下载 云闪付是国家正规平台吗,云闪付,正规,支付,功能,支持,银行,信用卡,下载,云闪付正规吗?云闪付是中国银联推出的一款具有收付款、卡管理、享优惠三大核心功能的手机支付APP。是中国银联在中国人民银行的指导下开放出来的软件。云闪付支…

喜马拉雅音频文件怎么转成MP3格式

喜马拉雅音频文件怎么转成MP3格式

喜马拉雅音频文件怎么转成MP3格式 音频格式转换攻略,游侠网,喜马拉雅,转换,音频格式,点击,下载,位置,重命名,喜马拉雅怎么转换音频格式?喜马拉雅是一款很火爆的声音app,那么这个app要怎么转换音频格式呢?小编已经帮大家整理好了相关内容,希望可以帮助…

查看并修改Oracle字符集的详细解释

查看并修改Oracle字符集的详细解释

字符集,解释,修改,详细,电脑软件,1。什么是oracle字符集 The Oracle character set is a set of symbols for the interpretation of a byte data, which has the size and the mutual tolerance.The architecture of ORACLE that supports…

解决PHP函数ip2long转换IP负数

解决PHP函数ip2long转换IP负数

函数,转换,负数,电脑软件,PHP,{原因}:因为PHP的整数类型被签名,因此会产生许多IP地址。 {解}:它是在其官方手册提到,可你需要使用,%u %u,sprintf()或printf(),它也是一个非常重要的因素。 那就是,printf('%u',ip2long('ip地址)); 或者它会将二进制到十进制…

宁波一老师与初中生发生关系被逮捕

宁波一老师与初中生发生关系被逮捕

宁波一老师与初中生发生关系被逮捕什么情况?宁波华茂外校老师性侵女生事件始末,学校,女生,声明,外国语学校,事件,维护,支持,疫情,20日,网传宁波华茂外国语学校一名男老师性侵一名初中女生。20日晚,该校发声明称,关于学校老师李某的行为及其造成的不良影…

雷军正式官宣小米正式发布隔空充电

雷军正式官宣小米正式发布隔空充电

雷军正式官宣小米正式发布隔空充电技术 率先在小米11上实现,小米,正式,接触,官方,无线充电,支持,接收器,新技术,小米手机官方发文宣布,将于今日公布一项划时代的技术革新!具体内容官方未透露,不过从海报来看,或许与充电有关。1月29日,小米CEO雷军在个人…