Мне нужен удобный для чтения, но формат документа, пригодный для анализа
Я работаю над одним из тех проектов, где есть миллион лучших способов достижения того, что мне нужно, но у меня нет выбора, и я должен сделать это таким образом. Вот он:
Существует веб-форма, когда пользователь заполняет ее и нажимает на отправку. Пользовательский текстовый файл, созданный человеком, создается с использованием данных формы. Это выглядит так:
field_1: value for field one
field_2: value for field two
more data for field two (field two has a newline in it!)
field3: some more data
Моя проблема заключается в следующем: Мне нужно проанализировать этот текстовый файл обратно в веб-форму, чтобы пользователь мог его редактировать.
Как я мог бы сделать это с полным трудом? База данных не является вариантом, я должен использовать эти текстовые файлы.
Мои вопросы:
- Есть ли надежный способ сделать это, используя формат в приведенном выше примере?
- Какой человеческий читаемый формат будет работать лучше (другими словами, я могу изменить формат)
- Чтение человеком означает, что не программист мог его прочитать и знать, что есть.
В этом проекте используется PHP.
UPDATE
Под понятным человеком я имею в виду, что любой может читать текст и не быть перегруженным им, включая вашу бабушку.
Ответы
Ответ 1
Мне нужен человек, читаемый, тем не менее Формат документа, пригодный для анализа
Это то, что было YAML. Вы можете узнать больше об этом на своем сайте или на Wikipedia.
Процитировать Wikipedia:
Синтаксис YAML был разработан как легко сопоставлены с типами данных, общими для большинства языки высокого уровня: список, хеш и скаляр. Его знакомый с отступом контур и худощавый внешний вид особенно подходит для задач, люди могут просматривать или редактировать данные структуры, такие как конфигурация файлы, сброс во время отладки и заголовки документов
Преимущество над XML заключается в том, что он не использует теги, которые могут запутать пользователей. И я думаю, что он чище, чем INI (о котором также упоминалось), потому что он просто использует двоеточия вместо равных знаков, точек с запятой и кавычек.
Образец YAML выглядит так:
invoice: 34843
date : 2001-01-23
bill-to: &id001
given : Chris
family : Dumars
address:
lines: |
458 Walkman Dr.
Suite #292
city : Royal Oak
state : MI
postal : 48046
ship-to: *id001
product:
- sku : BL394D
quantity : 4
description : Basketball
price : 450.00
- sku : BL4438H
quantity : 1
description : Super Hoop
price : 2392.00
tax : 251.42
total: 4443.52
comments: >
Late afternoon is best.
Backup contact is Nancy
Billsmer @ 338-4338.
Ответ 2
Я бы сказал, что используйте
или почти любой легкий язык разметки, который вы считаете подходящим.
Ответ 3
Возможно, вы захотите изучить YAML
http://www.yaml.org/
Я согласен с ответом Пабло Фернандеса. Я думаю, что JSON может быть хорошим выбором.
Ответ 4
XML является опцией.
Ответ 5
Я просто скажу, что строка INI довольно читаема:
Pet_Name = "Fred"
Но вы всегда можете перевернуть свой собственный формат. Что-то вроде:
Key: ValueValueValueValueValueValue
Key: ValueValue
В принципе, вы бы взорвали строку с помощью строк новой строки, найдите текстовые строки infront из двоеточий и используйте это как ключ, а данные после двоеточия и перед новой строкой - это значение.