Pergunta

Estou trabalhando em um desses projetos em que existem um milhão de maneiras melhores de realizar o que preciso, mas não tenho escolha e tenho que fazê -lo dessa maneira. Aqui está:

Existe um formulário da Web, quando o usuário o preenche e atinge um arquivo de texto legível por envio, é criado usando os dados do formulário. Se parece com isso:

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

Meu problema é o seguinte: Preciso analisar este arquivo de texto de volta ao formulário da Web para que o usuário possa editá -lo.

Como eu poderia, de uma maneira infalível, conseguir isso? Um banco de dados não é uma opção, eu tenho que usar esses arquivos de texto.

Minhas perguntas:

  • Existe uma maneira infalível de fazer isso usando o formato no exemplo acima?
  • O que o formato legível por humanos funcionaria melhor (em outras palavras, posso alterar o formato)
  • Legável humano significa que um não programador poderia lê -lo e saber o que é o quê.

Este projeto usa PHP.

ATUALIZAR

Pelo humano legível, quero dizer que alguém poderia ler o texto e não ficar impressionado com ele, incluindo sua avó.

Foi útil?

Solução

Eu preciso de um formato de documento legível por humanos, mas de parsea-

Isso é o que Yaml foi projetado para ser. Você pode ler mais sobre isso no site deles ou em Wikipedia.

Para citar a Wikipedia:

A sintaxe da YAML foi projetada para ser facilmente mapeada para os tipos de dados comuns à maioria dos idiomas de alto nível: lista, hash e escalar. Seu contorno de recuperação familiar e aparência enxuta tornam -o especialmente adequado para tarefas em que os seres humanos provavelmente visualizam ou editam estruturas de dados, como arquivos de configuração, despejo durante a depuração e cabeçalhos de documentos

A vantagem sobre o XML é que ele não usa tags que podem confundir usuários. E acho que é mais limpo que a INI (que também foi mencionada) porque simplesmente usa colonos em vez de iguais a sinais, semicolons e citações.

A amostra YAML parece:

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.

Outras dicas

Eu diria use

ou quase qualquer linguagem de marcação leve você considera apropriado.

Você pode querer olhar para Yaml

http://www.yaml.org/

Eu concordo com a resposta de Pablo Fernandez. Eu acho que o JSON pode ser uma boa escolha também.

Xml é uma opção.

Eu só vou dizer que uma string ini é bastante legível:

Pet_Name = "Fred"

Mas você sempre pode rolar seu próprio formato. Algo como:

Key: ValueValueValueValueValueValue
Key: ValueValue

Basicamente, você explodiria a string by Newlines, procuraria seqüências de texto na frente dos cônjuges e o usariam como chave, e os dados após o cólon e antes da nova linha ser o valor.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top