alex999
Guest
еще раз вапрос о дереве
тока без sql
хотел небольшое меню сделать и записать его в файл с отступами Если бы в пхп были бы нормальные ссылки проблем бы не было Но что делают ссылки в пхп я пака понимаю с бальшим очень трудом Методом тыка уквально написал
текст Сорри не обработан Так эта с-ка вставляет дополнительный элеиент ТО есть читает скажем файл
111111111
2222222222
3333333333
4444444
55555555
66666666
а выводит
111111111
2222222222
3333333333
4444444
55555555
66666666
Где ошибка понятно ПРи увеличении уровня появляется новый элемент Но как с помошью этих гребаных ссылок в пхп
я к сажалению смог тока ухудшиь результат
Может кто подскажет где есть исходник для древьев считываемых их текстового файла либо ваабще как сторояца деревья из массивов В общем надежда умирает последней
/**************************************************************************
* Читает вложенный список из файла $fn в структуру &$struct_to_read
***************************************************************************/
function read_tree_from_file($struct_to_read,$fn) {
if (!file_exists($fn)) return 0;
$f_arr = file($fn);
$items_cnt = 0; // число считаных и присвоеных элементов структуры
$leading_space_cnt_cur = 0;
$level = 0 ; // уровень вложенности
$parents[0] = &$struct_to_read;
$last_Item_title = NULL;
for ($n_str=0; $n_str<count($f_arr); $n_str++) {
$s = rtrim($f_arr[$n_str]);
$item_title = trim($s);
if (($item_title=="") or ($item_title==";")) continue;
$items_cnt += 1;
$len_topic = strlen($item_title);
$len_topic_1 = strlen($s);
$leading_space_cnt = $len_topic_1 - $len_topic;
if ( $leading_space_cnt > $leading_space_cnt_cur ) {
$level+=1;
$parents[$level] = &$parents[$level-1]["ITEMS"][];
$parents[$level]["TITLE"]="000";
$leading_space_cnt_cur = $leading_space_cnt;
}
if ($leading_space_cnt<$leading_space_cnt_cur) {
$level-=1;
$leading_space_cnt_cur = $leading_space_cnt;
}
$last_item = &$parents[$level]["ITEMS"][];
$parents[$level]["ITEMS"][] = New_Item( $item_title );
} // for
return 1;
} // function read_tree_from_file

хотел небольшое меню сделать и записать его в файл с отступами Если бы в пхп были бы нормальные ссылки проблем бы не было Но что делают ссылки в пхп я пака понимаю с бальшим очень трудом Методом тыка уквально написал
текст Сорри не обработан Так эта с-ка вставляет дополнительный элеиент ТО есть читает скажем файл
111111111
2222222222
3333333333
4444444
55555555
66666666
а выводит
111111111
2222222222
3333333333
4444444
55555555
66666666
Где ошибка понятно ПРи увеличении уровня появляется новый элемент Но как с помошью этих гребаных ссылок в пхп
я к сажалению смог тока ухудшиь результат
Может кто подскажет где есть исходник для древьев считываемых их текстового файла либо ваабще как сторояца деревья из массивов В общем надежда умирает последней
/**************************************************************************
* Читает вложенный список из файла $fn в структуру &$struct_to_read
***************************************************************************/
function read_tree_from_file($struct_to_read,$fn) {
if (!file_exists($fn)) return 0;
$f_arr = file($fn);
$items_cnt = 0; // число считаных и присвоеных элементов структуры
$leading_space_cnt_cur = 0;
$level = 0 ; // уровень вложенности
$parents[0] = &$struct_to_read;
$last_Item_title = NULL;
for ($n_str=0; $n_str<count($f_arr); $n_str++) {
$s = rtrim($f_arr[$n_str]);
$item_title = trim($s);
if (($item_title=="") or ($item_title==";")) continue;
$items_cnt += 1;
$len_topic = strlen($item_title);
$len_topic_1 = strlen($s);
$leading_space_cnt = $len_topic_1 - $len_topic;
if ( $leading_space_cnt > $leading_space_cnt_cur ) {
$level+=1;
$parents[$level] = &$parents[$level-1]["ITEMS"][];
$parents[$level]["TITLE"]="000";
$leading_space_cnt_cur = $leading_space_cnt;
}
if ($leading_space_cnt<$leading_space_cnt_cur) {
$level-=1;
$leading_space_cnt_cur = $leading_space_cnt;
}
$last_item = &$parents[$level]["ITEMS"][];
$parents[$level]["ITEMS"][] = New_Item( $item_title );
} // for
return 1;
} // function read_tree_from_file