Мне нужно человекочитаемое, все же способный синтаксическим анализом формат документа

Я работаю над одним из тех проектов, где существует миллион лучших способов выполнить то, в чем я нуждаюсь, но у меня нет выбора, и я должен сделать это этот путь.Вот:

Существует веб-форма, когда пользователь заполняет ее и поражает утверждание, что файл читаемого пользователем текста создается с помощью данных формы. Это похоже на это:

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.

ОБНОВЛЕНИЕ

Человекочитаемым я подразумеваю, что любой мог прочитать текст и не быть поражен им, включая Вашу бабушку.

18
задан macinjosh 7 April 2010 в 21:13
поделиться

5 ответов

Мне нужен удобочитаемый, но формат документа с возможностью синтаксического анализа

Это то, что было разработано YAML быть. Вы можете прочитать об этом на их сайте или в Википедии .

Цитата из Википедии:

Синтаксис YAML был разработан таким образом, чтобы его можно было легко сопоставить с типами данных, общими для большинства языков высокого уровня: списком, хешем и скаляром. . Его знакомая структура с отступом и компактный внешний вид делают его особенно подходящим для задач, в которых люди могут просматривать или редактировать структуры данных , такие как конфигурация {{1 }} файлы, дамп во время отладки и заголовки документов

Преимущество перед 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.
21
ответ дан 30 November 2019 в 07:17
поделиться

Я просто скажу, что строка INI довольно читабельна:

Pet_Name = "Fred"

Но вы всегда можете использовать свой собственный формат. Что-то вроде:

Key: ValueValueValueValueValueValue
Key: ValueValue

В принципе, вы бы взорвали строку по символам новой строки, ищите текстовые строки перед двоеточиями и использовали бы их в качестве ключа, а данные после двоеточия и перед новой строкой являются значением.

0
ответ дан 30 November 2019 в 07:17
поделиться

XML - это вариант.

1
ответ дан 30 November 2019 в 07:17
поделиться

Я бы сказал, либо использовать

] или почти любой упрощенный язык разметки , который вы сочтете подходящим.

11
ответ дан 30 November 2019 в 07:17
поделиться

Вы можете изучить YAML

http://www.yaml.org/

Я согласен с ответом Пабло Фернандеса. Я думаю, что JSON тоже может быть хорошим выбором.

5
ответ дан 30 November 2019 в 07:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: