Ho bisogno di un in chiaro, tuttavia Parse-in grado Document Format
-
25-09-2019 - |
Domanda
Sto lavorando su uno di quei progetti in cui ci sono modi un milione migliore per ottenere quello che mi serve, ma non ho scelta e devo farlo in questo modo. Eccolo:
C'è un modulo web, quando l'utente compila fuori e colpisce un inviare un file di testo leggibile viene creato utilizzando i dati del modulo. Ecco come si presenta:
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
Il mio problema è questo:. Ho bisogno di analizzare il testo di nuovo file nel modulo web in modo tale che l'utente possa modificarlo
Come potrei, in un modo infallibile, ottenere questo risultato? Un database non è un'opzione, devo usare questi file di testo.
Le mie domande:
- C'è un modo infallibile per fare questo utilizzando il formato nell'esempio di cui sopra?
- Quale formato leggibile avrebbe funzionato meglio (in altre parole, posso cambiare il formato)
- mezzi umani leggibili che un programmatore potrebbe non leggere e sapere cosa è cosa.
Questo progetto utilizza PHP.
Aggiorna
Per leggibile voglio dire che chiunque potrebbe leggere il testo e non essere sopraffatto da essa, compreso il vostro nonna.
Soluzione
Ho bisogno di un in chiaro, tuttavia Parse-grado Document Format
Questo è ciò che YAML è stato progettato per essere. Si può leggere di più sul loro sito o su Wikipedia .
Per citare Wikipedia:
sintassi YAML è stato progettato per essere facilmente mappato ai tipi di dati comuni alla maggior linguaggi di alto livello: la lista, hash, e scalare. La sua frastagliata familiare contorno e l'aspetto magra rende Particolarmente indicato per le attività in cui gli esseri umani sono suscettibili di visualizzare o modificare i dati strutture, come la configurazione file, lo scarico durante il debug, e intestazioni dei documenti
Il vantaggio rispetto XML è che non fa uso di tag che potrebbero confondere gli utenti. E penso che sia più pulito di INI (che è stato anche citato) perché utilizza semplicemente i due punti al posto dei segni di uguaglianza, punti e virgola e citazioni.
di esempio appare come 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.
Altri suggerimenti
direi che sia per uso
o semplicemente su qualsiasi href="http://en.wikipedia.org/wiki/Lightweight_markup_language" rel="noreferrer"> leggero Markup Language che ritiene più appropriato.
Si potrebbe voler esaminare YAML
Sono d'accordo con la risposta Pablo Fernandez. Penso JSON potrebbe essere una buona scelta pure.
XML è un'opzione.
Devo solo dire che una stringa di INI è abbastanza leggibile:
Pet_Name = "Fred"
Ma, si potrebbe sempre rotolare il proprio formato. Qualcosa di simile:
Key: ValueValueValueValueValueValue
Key: ValueValue
In sostanza, si sarebbe esplosa la stringa da nuove righe, cercare stringhe di testo Infront di due punti e utilizzarlo come la chiave, ed i dati dopo i due punti e prima della nuova linea è il valore.