在PHP中使用原始数组文本作为数组的输入


Using raw array text as input for array in PHP

我需要能够在一个大数组上运行一些内置的PHP函数,这个数组来自一个损坏的wordpress数据库,除了csv文件外,我没有任何备份。具体来说,wp_options表是一团糟的,因为站点使用的主题的数组中的一些值嵌套得太深了,并且在option_value db单元格中截断了大约100个选项值。

我希望能够挽救我在原始csv中的选项,并将其添加到该主题的虚拟内容中的股票价值选项中,然后从那里收回我所能收回的。复制/粘贴到数据库中不起作用,因为并非所有主题使用的值都在那里,所以它在某个地方破坏了php脚本。

文本的格式如下:

[数据类型]:[项目数]:[数据]
[其他类型]:[#items]:[更多数据];

所以真实数据看起来像:

a: 3:{s:6:"abcdef";i:1:5;a:0:{}}

有没有什么方法可以采用这种原始文本格式,并将其输入到php中的变量中,将其用作数组数据类型?从本质上讲,我会循环遍历伪内容数组中的所有键,并检查备份数组中是否有值,如果有,则用备份的值替换它。如果没有,就把它留在那里。

数据:

a:3:{s:6:"abcdef";i:1:5;a:0:{}}

是使用PHP serialize()函数序列化的数组。

如果运行:

$val = unserialize($serialized_value);

您将恢复原始值。