最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
php中序列化与反序列化在utf8和gbk编码中测试
时间:2022-06-24 17:24:00 编辑:袖梨 来源:一聚教程网
php 在utf8和gbk编码下使用serialize和unserialize互相序列化和反序列化会出现无法成功反序列化的问题。
问题出现的原因主要是在不同编码下strlen函数计算中文字符串长度不同的原因。
| 代码如下 | 复制代码 |
|
$array=array('title'=>'php教程分享网','url'=>'https://www.111cn.net'); echo serialize($array); //gbk编码 a:2:{s:5:"title";s:13:"php教程分享网";s:3:"url";s:20:"https://www.111cn.net";} //utf8编码 a:2:{s:5:"title";s:18:"php教程分享网";s:3:"url";s:20:"https://www.111cn.net";} ?> |
|
要解决这个问题就要在反序列化的时候重新修正字符串的长度。
解决方案
| 代码如下 | 复制代码 |
|
$str='a:2:{s:5:"title";s:13:"php教程分享网";s:3:"url";s:20:"https://www.111cn.net";}'; $str = preg_replace_callback( $regex , "fixser", $str); function fixser($matches) { return 's:'.strlen($matches[2]).':'.'"'.$matches[2].'"'; } ?> |
|
可以改成匿名函数
| 代码如下 | 复制代码 |
|
$str='a:2:{s:5:"title";s:13:"php教程分享网";s:3:"url";s:20:"https://www.111cn.net";}'; $str = preg_replace_callback( ?> |
|
相关文章
- YY漫画首页直达入口-热门章节一键畅读 12-23
- 恶魔秘境灰烬之子500魂地狱黑塔攻略 12-23
- 漫蛙漫画官网登录入口-漫蛙2漫画app免费下载 12-23
- 像素火影网页版畅玩入口-像素火影唤境新版官网直达 12-23
- 艾尔登法环黑夜君临异常状态一览:七类异常状态效果分别是什么 12-23
- 艾尔登法环黑夜君临随机事件 黑环随机事件类型一览 12-23