интересуют комментарии там где в конце строки есть //1
и ещё, чем занимает массив(?) refs
- Код: Выделить всё
- <?php
 $text = "somefunc1
 \tsub1
 \tsub2
 \tsub3
 \t\tsubtext1
 \t\tsubtext2
 somefunc2
 \tcoolstr1
 \t\tcool1
 \tcoolstr2
 somefunc3";
 $target = array();
 $refs = array(&$target); //1
 //заменяем текст
 $text = str_replace(array("\r\n", "\n\r"), array("\n", "\n"), $text);
 // разбиваем строку на подстроки, в качестве разделителя \n
 foreach(explode("\n", $text) as $str) {
 if (($val = trim($str)) === '') continue; //1
 $level = 0;
 while (substr($str, $level++, 1) === "\t"); //вернуть подстроку строки str налало в level++ 1 символ
 while ($level < count($refs)-1) {
 array_pop($refs); //извлеч последний элемент массива
 }
 if ($level >= count($refs)) {
 $refs[count($refs)-1][$val] = array(); //1
 array_push($refs, &$refs[count($refs)-1][$val]); //добавить элемент в конец массива
 } else {
 $refs[count($refs)-2][$val] = array(); //1
 $refs[count($refs)-1] = &$refs[count($refs)-2][$val];//1
 }
 ?>
код разбирает "дерево" и записывает его в массив



