如何将txt文件设置转换为php数组

时间:2014-10-09 05:47:36

标签: php arrays file

我的文本文件包含如下值:

varname:
{
    varname2: value
    varname3: 
    {
       varname4: value
    }
}

我需要以某种方式将其变为这样的php数组:

array(
   varname => array
   (
      varname2 => value
      varname3 => array
      (
          varname4 => value
      ) 
   )
)

我该怎么做?

我已经尝试循环遍历文件并尝试创建类似的值,但是当存在多个级别数组时它会变得非常棘手。花了好几个小时没有运气......

2 个答案:

答案 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

另一方面,您也可以分两步完成(取决于现在显示的用例的复杂程度)。

  1. 替换所有前导空格并将: \n{替换为: {以便于解析。
  2. 编写递归解析函数。在每一行中,:之前的所有内容都是变量名称,值之后的所有内容。如果值为{}之前的递归,并将结果用作值。