php - php反序列化不起作用
问题描述
我的情况很奇怪。我正在解析隐藏的输入并得到这个字符串:
a:2:{s:12:"subscription";a:5:{s:6:"gender";i:1;s:4:"name";i:1;s:7:"company";i:1;s:5:"email";i:1;s:11:"receiveHtml";i:1;}s:6:"submit";i:1;}d35ea44253419bbb6a8be13422eb606ad54121f4
它来自这个
preg_match_all('/hidden" name="(.*?)" value="(.*?)"/', $html, $hiddenResults);
当我尝试反序列化时它返回false,但如果我只是将它设置为手动变量并反序列化 - 它可以工作!什么问题?
我注意到了这一点:
string(248) "a:2:{s:12:"subscription";a:5:{s:6:"gender";i:1;s:4:"name";i:1;s:7:"company";i:1;s:5:"email";i:1;s:11:"receiveHtml";i:1;}s:6:"submit";i:1;}d35ea44253419bbb6a8be13422eb606ad54121f4"
string(178) "a:2:{s:12:"subscription";a:5:{s:6:"gender";i:1;s:4:"name";i:1;s:7:"company";i:1;s:5:"email";i:1;s:11:"receiveHtml";i:1;}s:6:"submit";i:1;}d35ea44253419bbb6a8be13422eb606ad54121f4"
相同的字符串有不同的长度!这怎么可能 ?
解决方案
str_replace(""", '"', $hiddenValues[$i]);
它解决了问题
推荐阅读
- sql-server - 在 AAD 用户与登录的桌面帐户不同的情况下,如何将 SQL Server Profiler 与具有 AAD 集成安全性的 Azure SQL Server 一起使用?
- r - 创建显示R中两列之间的stringdist的新字段?
- python - 对配对元组进行排序并获取前 n 个结果
- python - 使用 firehose 将 twitter 数据流式传输到 S3 存储桶
- arrays - 似乎无法理解为什么这个数组不会在 C 中反转
- java - mapstruct 1.3 无法将 Enum 作为第一个方法参数
- r - 如何修复在r中编译包的“没有指定包问题”的错误?
- html - HTML Href 如何以文本形式打开文件
- excel - 将另一张工作表中的数据添加到最后一行的宏行为不正常?
- javascript - 执行@PostMapping 并留在页面上而不进行重定向