[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Отпарсить структурированный txt
shadwar
Помогите разобраться, можно вместо кода просто подкинуть ссылок на статьи или темы форума, где подобный вопрос обсуждался... Поиском не нашел.

Есть txt файл с повторяемой много раз структурой:

Цитата

Number 1
{
type 0
title 1
description 1001 1
take 2
takem 1
duty
{
  taking 2
}
default
{
  option_e 10
  option_s 14
  option 100 1 2
}
trigger TE_LEV ( 1 100 )
trigger TE_LINK ( 9001 )
}

Number 2...
{
...
}


Пункты и их количество могут меняться, но все возможные известны. Так вот, желательно вообще отпарсить в таблицу типа 1|0|1|10001|1|2 и так далее, пропущенные пункты (возможные, но в конкретной структуре нет) заменить нулями в нужном столбце. Данные через пробел также в отдельных столбцах.

В пхп новичок, куда копать не пойму, хотя бы примеры подобного...


Заранее, огромное спасибо! smile.gif



Спустя 17 минут, 20 секунд (24.12.2010 - 01:24) Invis1ble написал(а):
shadwar
Смотри, получается тебе нужно сначала считать данные из этого файла, чтобы с ними работать. Есть несколько способов, я бы сделал так:
$data = implode('', file('file.txt'));

далее - нужно разобрать эти данные... Для этого тоже существуют несколько ф-ций, в данном случае я думаю нужно сначала разбить эти данные на блоки по записи Number N. Ф-ция для разбива по регулярному выражению - preg_split(), копай в эту сторону. Есть еще explode(), но она в данном случае наверно не подойдет...
Дальше - по аналогии, разбить каждый блок на подблоки..

Спустя 8 часов, 20 минут, 32 секунды (24.12.2010 - 09:45) linker написал(а):
Смотри в сторону алгоритмов построения автоматов.

Спустя 11 часов, 1 минута, 26 секунд (24.12.2010 - 20:46) shadwar написал(а):
Не расчитал свои силы. Пока слишком сложно для меня.
Можно пример?
Хотябы как отпарсить в массив, типа:

Цитата

Array
(
    [Number] => 1
    [type] => 0
    [title] => 1
    [description] => 1001 1
    [take] => 2
    [takem] => 1
    [duty.taking] => 2
    [default.option_e] => 10
    [trigger.TE_LINK] => 9001
)


И подобное, никак не могу разобраться..
Спасибо!

Спустя 3 минуты, 29 секунд (24.12.2010 - 20:50) Invis1ble написал(а):
shadwar
Изучай регулярные выражения и ф-ции для работы с ними - многое станет понятным

Спустя 49 минут, 32 секунды (24.12.2010 - 21:39) linker написал(а):
shadwar
А что там в массиве парсить?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.