有没有办法解决这个问题:
network={
ssid="tele2-ssid-66577"
#psk="testtest2"
psk=8308d8e34c60fe471fda6837ab5821694e8cf51a655f24295797df33d02df6e9
}
使用php进入对象或数组?
我尝试了没有结果的json_decode。
-------------更新:
最终目标是只提取psk键,我只是想把它变成一个对象/数组是最简单的事情,而不是干涉正则表达式或摆弄字符串,但也许它不可能..
答案 0 :(得分:0)
我通过正则表达式然后进行了一些处理
$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
)
)