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

StackOverflow https://stackoverflow.com/questions/2595913

Вопрос

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

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

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 был разработан так, чтобы он был легко сопоставлен на типы данных, общие на большинстве языков высокого уровня: список, хэш и скаляр. Его знакомый отступом наброски и постный внешний вид делает его особенно подходящим для задач, где люди могут просматривать или редактировать структуры данных, такие как файлы конфигурации, сброс во время отладки и заголовки документов

Преимущество через 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

http://www.yaml.org/

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

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

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

Pet_Name = "Fred"

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

Key: ValueValueValueValueValueValue
Key: ValueValue

В принципе, вы бы взорвали строку по новому числам, ищите текстовые строки infront of toMons и используют это в качестве ключа, а также данные после того, как ointline - это значение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top