Я работаю над одним из тех проектов, где есть миллион лучших способов для достижения того, что мне нужно, но у меня нет выбора, и я должен сделать это таким образом. Вот:
Существует веб-форма, когда пользователь заполняет ее и нажимает на отправку. Пользовательский текстовый файл для чтения создается с использованием данных формы. Это выглядит так:
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.
ОБНОВИТЬ
Под понятным человеком я имею в виду, что любой может читать текст и не быть перегруженным им, включая вашу бабушку.
Мне нужен удобный для чтения, но формат документа, пригодный для анализа
Это то, что было разработано YAML . Вы можете узнать больше об этом на своем сайте или в Википедии .
Процитировать Википедию:
Синтаксис 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.
Я бы сказал,
или почти любой легкий язык разметки, который вы считаете подходящим.
Возможно, вы захотите заглянуть в YAML
Я согласен с ответом Пабло Фернандеса. Я думаю, что JSON может быть хорошим выбором.
XML – это вариант.
Я просто хочу сказать, что строка INI довольно читаема:
Pet_Name = "Fred"
Но вы всегда можете перевернуть свой собственный формат. Что-то вроде:
Key: ValueValueValueValueValueValue Key: ValueValue
В принципе, вы должны взорвать строку с помощью строк новой строки, искать текстовые строки infront из двоеточий и использовать это как ключ, а также данные после двоеточия и перед значением новой строки.