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.

È stato utile?

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

http://www.yaml.org/

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top