2014-10-09 98 views
0

我有一个包含这样的值文本文件:如何txt文件的设置转换成PHP数组

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

我需要以某种方式得到这个成PHP数组是这样的:

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

我怎么能做这个?

我已经尝试循环遍历文件,并试图使这样的值,但它有非常棘手的时候有多个级别的数组。花了很多时间没有运气...

回答

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); 
0

这取决于多少你想要它的黑客。如果你有一个真正的定义格式,并想要严格,你会从一个词法分析器开始。请参阅http://wezfurlong.org/blog/2006/nov/parser-and-lexer-generators-for-php/https://github.com/nikic/Phlexy

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

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