function tree($sContents)
{
global $sParents;
global $aBlocks;
$sPattern = '#\[(.+?)\](.+?)\[\/\\1\]#si';
preg_match_all($sPattern, $sContents, $aMatches, PREG_SET_ORDER);
foreach ($aMatches as $sMatch)
{
$aBlocks[$sParents . $sMatch[1]] = $sMatch[2];
$sParents .= $sMatch[1] . '.';
tree($sMatch[2]);
if (!preg_match_all($sPattern, $sContents, $aMatches, PREG_SET_ORDER))
$sParents = '';
}
$sParents = '';
}
После обработки такого файла:
[test]TEST[wow]WOW![/wow][/test]
будет построен массив:
Array
(
[test] => TEST[wow]WOW![/wow]
[test.wow] => WOW!
)
Как переделать эту функцию, что-бы она все делала наоборот, тоесть из массива строила бы исходный файл?