Eu preciso de um formato de documento legível por humanos, mas de parsea-
-
25-09-2019 - |
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ó.
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
- Arquivos ini ou
- Yaml ou
- Markdown ou
- Têxtil
ou quase qualquer linguagem de marcação leve você considera apropriado.
Você pode querer olhar para Yaml
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.