代码之家  ›  专栏  ›  技术社区  ›  Alex

PHP取消序列化Javascript序列化字符串

  •  0
  • Alex  · 技术社区  · 9 年前

    很好的一天,

    我得到了一个新脚本(对我来说),它允许您创建一个可拖动的树视图。

    树结构的顺序可以更改并存储。 我设法发送和获取更新的结构。

    然而,我尚未成功地取消字符串的序列化。 在我编写自己的逻辑来解码数组之前,我想知道PHP是否默认知道一些功能来解决这个问题?

    实例

    我拥有的字符串:

    spans-divs[0][id]=null&spans-divs[1][id]=null&spans-divs[1][children][0][id]=null&spans-divs[1][children][0][children][0][id]=null&spans-divs[2][id]=null&spans-divs[3][id]=null
    

    生成此字符串的代码:

    serialized[0].hash
    

    我希望有人能告诉我我做错了什么。或者如果这是一个可用的结构。

    提前感谢

    笔记 结果由PHP写入名为test.txt的文件

    当我试图获得结果时,我会这样做:

    <?php
    $cont   = file_get_contents('test.txt');
    $Str    = parse_str($cont);
    echo '->'.$Str.'<-';
    ?>
    

    这产生:>&书信电报; 因此是一个空字符串。

    以下是一个可行的解决方案:

    <?php
    $cont   = file_get_contents('test.txt');
    parse_str($cont, $Str);
    echo print_r($Str);
    ?>
    

    (*从中产生的数组实际上非常无用*)但谢谢

    1 回复  |  直到 9 年前
        1
  •  0
  •   CodeGodie    9 年前

    这就是你所需要的:

    $arr = [];
    $string = "spans-divs[0][id]=null&spans-divs[1][id]=null&spans-divs[1][children][0][id]=null&spans-divs[1][children][0][children][0][id]=null&spans-divs[2][id]=null&spans-divs[3][id]=null";
    parse_str($string, $arr);
    var_dump($arr);
    

    资料来源: http://php.net/manual/en/function.parse-str.php