Please, help solve the problem. I have a string like this:
[MoveNode(node='/html/head/meta[6]', target='/html/head[1]', position=22), MoveNode(node='/html/body/div[1]/main/div[1]/div/div/div/div/div[2]/ul/li[1]/a[1]', target='/html/head[1]', position=15), RenameNode(node='/html/head/a[1]', tag='meta'), InsertAttrib(node='/html/head/meta[6]', name='content', value='text text text text (text text), text'), InsertAttrib(node='/html/head/meta[6]', name='name', value='description'), DeleteAttrib(node='/html/head/meta[6]', name='href'), DeleteAttrib(node='/html/head/meta[6]', name='title'), UpdateTextIn(node='/html/head/meta[6]', text=None), MoveNode(node='/html/body/div[1]/main/footer/ul/li[2]/a[1]', target='/html/head[1]', position=16), RenameNode(node='/html/head/a[1]', tag='meta'), DeleteNode(node='/html/body/div[1]/main/div[1]/div/header/div/div/div[2]/div/h6[1]'), DeleteNode(node='/html/body/div[1]/main/div[1]/div/header/div/div/div[2]/div[1]')]
I need to convert this string to such an array. How to do it?
Array
(
[MoveNode_1] => Array
(
[node] => /html/head/meta[6]
[target] => /html/head[1]
[position] => 22
)
...
[InsertAttrib_4] => Array
(
[node] => /html/head/meta[6]
[name] => content
[value] => text text text text (text text), text
)
[InsertAttrib_5] => Array
(
[node] => /html/head/meta[6]
[name] => name
[value] => description
)
...
[MoveNode_9] => Array
(
[node] => /html/body/div[1]/main/footer/ul/li[2]/a[1]
[target] => /html/head[1]
[position] => 16
)
...
)
Tried to solve like this
$str = '....';
$arr0 = explode("), ", $str);
$arr2 = [];
$i = 1;
foreach ($arr0 AS $arr1) {
$arrs = explode("(", $arr1);
parse_str(str_replace(['\'', ', '], ['', '&'], $arrs[1]), $output);
$arr2[$arrs[0] . "_" . $i] = $output;
$i++;
}
print_r($arr2);
But because of the brackets inside the text, the array is formed incorrectly
print_r/var_dumped object. Where did you get this from? Should've generated a parsable format to begin with, instead of this debug output.