Помощник
|
![]() |
![]() |
Сообщение
#1
|
||
![]() |
|
||
|
|||
![]() |
![]()
Сообщение
#2
|
![]() |
gaaarfild, в каком формате у тебя должны уходить данные в treeview и все ли тебе строчки нужны из файла? Задача не сложная, Получить имя на конце и сосчитать количество слешей, чтобы определить уровень вложенности, я так понимаю. Затем, скорее всего строится XML или что?
|
|
|
![]() |
Сообщение
#3
|
![]() |
Возможно сразу JSON.
Хотя, может и XML. Я, честно говоря, не выбрал еще плагин, так что можно любой, который удобнее, я думаю. |
|
|
![]() |
![]()
Сообщение
#4
|
![]() |
gaaarfild, ты так и не написал, что нужно получить при парсинге...
|
|
|
![]() |
Сообщение
#5
|
![]() |
Дерево каталогов. =)
|
|
|
![]() |
![]()
Сообщение
#6
|
![]() |
gaaarfild, ппц, в какой форме, ведь потом же скрипт это должен будет обработать.
Можно сделать примерно так: [xml]<?xml version="1.0" encoding="UTF-8"?> <treeview> <nodes> <node href="[ссылка]" text="ссылка 1"> <node href="[ссылка]" text="ссылка 1_1" /> <node href="[ссылка]" text="ссылка 1_2" /> </node> <node href="[ссылка]" text="ссылка 2"> <node href="[ссылка]" text="ссылка 2_1"> <node href="[ссылка]" text="ссылка 2_1_1" /> <node href="[ссылка]" text="ссылка 2_1_2" /> <node href="[ссылка]" text="ссылка 2_1_3"> </node> <node href="[ссылка]" text="ссылка 2_2" /> </node> <node> </nodes> </treeview>[/xml] Но ведь ты за основу, как я понял, хочешь взять уже готовый скрипт вывода дерева каталогов... Поэтому и спрашиваю, какой формат данных он имеет. В какой форме их записывать. Это нужно чтобы распарсить и создать нужный формат. |
|
|
![]() |
Сообщение
#7
|
![]() |
[xml]<root>
<item id="xml_1"> <content><name><![CDATA[Root node 1]]></name></content> <item id="xml_2"> <content><name><![CDATA[Child node 1]]></name></content> </item> </item> </root>[/xml] Вот такого типа. |
|
|
![]() |
![]()
Сообщение
#8
|
![]() |
gaaarfild, а где ссылка каждого элемента?
|
|
|
![]() |
Сообщение
#9
|
![]() |
А ссылка не нужна.
Нужно только такую структуру. |
|
|
![]() |
![]()
Сообщение
#10
|
![]() |
gaaarfild, id-шники немного сделал другими, но суть остается та же (если не нужно, можно убрать все \r\n и \t, сделал их для нормального просмотра в исходном коде):
[php]<?php // функция-обертка создания дерева function createTree($paths) { $tree = array(); // массив (дерево) // обрабатываем по отдельности каждый путь foreach($paths as $path) recursiveCreateTree($tree, $path); // рекурсивно создаём дерево return $tree; // возвращаем дерево } // функция рекурсии создания дерева function recursiveCreateTree(&$parent, $path, $level = 0) { if(!isset($parent[$path[$level]])) { $parent[$path[$level]]['name'] = $path[$level]; $parent[$path[$level]]['nodes'] = array(); } if(isset($path[$level+1])) recursiveCreateTree($parent[$path[$level]]['nodes'], $path, $level+1); } // функция, создающая из дерева XML function createXML($tree) { $xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; $xml .= "<root>"; $xml .= recursiveCreateXML($tree); $xml .= "</root>"; return $xml; } // функция рекурсии, дерево -> XML (создание <item>...</item>) function recursiveCreateXML($parent, $level=1, $str_id = "xml") { $count = 1; $recursiveXML = ""; foreach($parent as $item) { $recursiveXML .= "\r\n". str_repeat("\t", $level) ."<item id=\"{$str_id}{$count}\">"; $recursiveXML .= "\r\n". str_repeat("\t", $level+1) ."<content><name>{$item['name']}</name></content>"; if( count($item['nodes']) ) $recursiveXML .= recursiveCreateXML($item['nodes'], $level+1, $str_id.$count."_"); $recursiveXML .= "\r\n". str_repeat("\t", $level) ."</item>"; $count++; } return $recursiveXML; } $paths = array(); // массив для занесения URL в формек строк "/catalog1/catalog2/catalog3" $tmp = array(); // двумерный массив для занесения URL в форме "один_URL => ('catalog1', 'catalog2', 'catalog3')" $tree = array(); // многомерный массив для занесения дерева (это наше дерево) $paths = file("paths.txt"); // считываем URL'ы $paths = str_replace(array("\r\n", "\n"), "", $paths); // очищаем все URL'ы от пробельных символов и символов переноса $paths = array_unique($paths); // оставляем только уникальные URL'ы // обрабатываем в цикле URL'ы foreach($paths as $key => $path) { $tmp[$key] = explode("/", $path); if( $tmp[$key][0] == "" ) array_shift($tmp[$key]); // удаляем первый элемент, если он пустой } $tree = createTree($tmp); // создаём дерево каталогов echo createXML($tree); // создаем из дерева каталогов XML-документ ?>[/php] |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
![]() |
Как с помощью Python из файла Word удалить ненужные изображения и таблицы? | 0 | rownong27 | 2425 | 1.2.2025, 14:48 автор: rownong27 |
![]() |
BaseGSeo_v2 - самая чистая база каталогов рунета. | 34 | Galer | 21023 | 12.8.2024, 10:39 автор: AlexandrVol |
![]() |
![]() |
302 | shtaketo | 412651 | 3.11.2023, 23:36 автор: shtaketo |
![]() |
Базы каталогов и форумов сейчас покупают? | 36 | metvekot | 22460 | 11.10.2023, 6:21 автор: Skyworker |
![]() |
(ищу) База каталогов / трастовых сайтов Украина | 1 | BigSam | 5791 | 28.9.2020, 20:56 автор: GlazAlmaz |
![]() |
Текстовая версия | Сейчас: 19.4.2025, 16:16 |