【问题标题】:php unserialize not workingphp反序列化不起作用
【发布时间】:2018-06-07 16:45:08
【问题描述】:

我的情况很奇怪。 我正在解析隐藏的输入并得到这个字符串:

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"

相同的字符串有不同的长度!这怎么可能 ?

【问题讨论】:

  • 上传更大的sn-p代码有什么变化吗?
  • 真的没关系!请看一下,相同的字符串,长度不同
  • 第一个字符串中可能有一些隐藏字符。
  • 我怎么能看到?
  • 不要用正则表达式解析HTML,使用php.net/manual/en/class.domdocument.php

标签: php serialization


【解决方案1】:
str_replace(""", '"', $hiddenValues[$i]);

问题解决了

【讨论】:

    猜你喜欢
    • 2018-02-02
    • 2012-07-11
    • 2020-10-16
    • 2012-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多