我有一个程序存档,我需要将这个存档的信息作为数组加载到php中。
我可以在字符串中设置存档的信息,但我无法将其转换为数组。
这是字符串:
archivedVars =
{
["Default"] =
{
["Name"] =
{
["Name1"] =
{
["@XXXXX"] =
{
["show"] = true,
["open"] = true,
},
},
["Name2"] =
{
["YYYYY"] =
{
["show"] = true,
["open"] = true,
},
},
},
},
}
如何将此字符串转换为php数组?
答案 0 :(得分:3)
最好的办法是发现使用的格式和存在的解码库。
如果不这样做,你应该使用例如开发一个合适的解析器。国家机器什么的。
如果结构与您发布的一样,并且结构正确性得到保证,您可以尝试将其转换为可用库可解析的内容,例如: JSON:
$str = preg_replace('#[[]("[^"]+")[]]\\s*=#', '\\1:', $str);
$str = preg_replace('#,(\\s*})#', '\\1', $str);
$str = preg_replace('#archivedVars =#', '', $str);
$arr = json_decode($str, true);
以上(即使您不应该使用regexps解析HTML或结构化数据)也会产生一个可步行数组:
Array
(
[Default] => Array
(
[Name] => Array
(
[Name1] => Array
(
[@XXXXX] => Array
(
[show] => 1
[open] => 1
)
)
[Name2] => Array
(
[YYYYY] => Array
(
[show] => 1
[open] => 1
)
)
)
)
)