php 把这个语法变成 object/array

php turn this syntax into object/array

有什么方法可以改变这个:

network={
    ssid="tele2-ssid-66577"
    #psk="testtest2"
    psk=8308d8e34c60fe471fda6837ab5821694e8cf51a655f24295797df33d02df6e9
}

使用 php?

进入对象或数组

我试过 json_decode 没有结果。

------------更新:

最终目标是只提取 psk 密钥,我只是认为将它变成 object/array 是最简单的事情,而不是干预正则表达式或摆弄字符串,但也许它是不可能...

我运行它通过正则表达式然后一些处理

$str = 'network={
    ssid="tele2-ssid-66577"
    #psk="testtest2"
    psk=8308d8e34c60fe471fda6837ab5821694e8cf51a655f24295797df33d02df6e9
}';

$output = array();
if (preg_match_all('/(([^=]+)=\{|\s+([^#]+)=(.*))/', $str, $match) and sizeof($match[2]) > 2) {
    $output[$match[2][0]] = array();
    for ($i=1; $i<sizeof($match[2]); $i++) {
        $key = trim($match[3][$i]);
        $value = trim($match[4][$i]);

        // remove outer double quotes
        if (preg_match('/^"(.*)"$/', $value, $match2)) $value = $match2[1];

        // save
        $output[$match[2][0]][$key] = $value;
    }
}

print_r($output);

给出输出:

Array
(
    [network] => Array
        (
            [ssid] => tele2-ssid-66577
            [psk] => 8308d8e34c60fe471fda6837ab5821694e8cf51a655f24295797df33d02df6e9
        )
)