- substr: documentation ( source)
- var_dump: documentation ( source)
- token_get_all: documentation ( source)
<?php
$str = <<<'EOT'
<?
$array = [
'KEY_1' => 'VALUE_1',
'KEY_2' => 'VALUE_2',
'KEY_3' => 'VALUE_3',
];
EOT;
$array = [];
$key = null;
$state = 0;
foreach(token_get_all($str) as $token)
{
if(isset($token[0]))
{
if($token[0] === T_DOUBLE_ARROW)
{
$state = 1;
}
else if($token[0] === T_CONSTANT_ENCAPSED_STRING)
{
if($state === 0)
{
$key = substr($token[1], 1, -1);
$state = 1;
}
else
{
$array[$key] = substr($token[1], 1, -1);
$state = 0;
}
}
}
}
var_dump($array);