我的文本文件包含如下值:
varname:
{
varname2: value
varname3:
{
varname4: value
}
}
我需要以某种方式将其变为这样的php数组:
array(
varname => array
(
varname2 => value
varname3 => array
(
varname4 => value
)
)
)
我该怎么做?
我已经尝试循环遍历文件并尝试创建类似的值,但是当存在多个级别数组时它会变得非常棘手。花了好几个小时没有运气......
答案 0 :(得分:0)
我建议您(如果可以的话)将文件格式更改为JSON格式,这与您现在的格式非常相似:
{"varname":{"varname2":"value","varname3":{"varname4":"value"}}}
然后你可以读取文件并使用json_decode以非常简单的形式获取数组。在这里,我编写解码json到数组的代码并回显它:
$s = file_get_contents('datos.js');
$ar = json_decode($s, true);
print_r($ar);
答案 1 :(得分:0)
这取决于你想要的黑客程度。如果您有一个真正定义的格式并且想要严格,那么您应该从词法分析器开始。请参阅http://wezfurlong.org/blog/2006/nov/parser-and-lexer-generators-for-php/或https://github.com/nikic/Phlexy
另一方面,您也可以分两步完成(取决于现在显示的用例的复杂程度)。
: \n{
替换为: {
以便于解析。:
之前的所有内容都是变量名称,值之后的所有内容。如果值为{
到}
之前的递归,并将结果用作值。