Ich brauche eine Klar, doch Parse-able Document Format
-
25-09-2019 - |
Frage
Ich arbeite an einem dieser Projekte, bei denen es eine Million bessere Wege zu erreichen, was ich brauche, aber ich habe keine andere Wahl, und ich habe es auf diese Weise zu tun. Hier ist sie:
Es gibt ein Web-Formular, wenn der Benutzer es füllt und trifft ein eine vom Menschen lesbare Textdatei einreichen wird, um die Formulardaten erstellt wird. Es sieht wie folgt aus:
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
Mein Problem ist folgendes:. Ich brauche diese Textdatei wieder in das Web-Formular zu analysieren, so dass der Benutzer sie bearbeiten können
Wie könnte ich in einem narrensicheren Weg, dies zu erreichen? Eine Datenbank ist keine Option, ich habe diese Textdateien verwenden.
Meine Fragen:
- Gibt es eine harmlose Weise über diese mit dem Format in dem Beispiel zu tun?
- Was für Menschen lesbares Format besser funktionieren würde (in anderen Worten kann ich das Format ändern)
- Menschenlesbare Mittel, dass ein nicht-Programmierer es lesen konnte und wissen, was ist, was.
Dieses Projekt verwendet PHP.
UPDATE
Mit dem für Menschen lesbares meine ich, dass jemand den Text lesen konnte und nicht von ihr überwältigt werden, einschließlich Ihrer Großmutter.
Lösung
Ich brauche ein menschenlesbares Format, doch Parse-able Document Format
Dies ist, was YAML entworfen zu sein. Sie können weitere Informationen auf ihrer Website oder auf Wikipedia .
Wikipedia zitieren:
wurde YAML Syntax entwickelt, um einfach zu sein, Datentypen in den meisten kartiert Hochsprachen: Liste, Hash, und Skalar. Seine vertraut gegliederten umreißen und schlankes Aussehen macht es besonders für Aufgaben geeignet, bei denen Menschen sind wahrscheinlich ansehen oder bearbeiten Daten Strukturen, wie beispielsweise Konfigurations Dateien, Dumping während des Debuggens und Dokument-Header
Der Vorteil gegenüber XML ist, dass es keine Tags nicht verwendet werden, die Benutzer verwirren könnten. Und ich denke, es ist sauberer als INI (die auch erwähnt wurde), weil es einfach verwendet Doppelpunkte statt Gleichheitszeichen, Semikolons und Zitate.
Beispiel YAML sieht aus wie:
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.
Andere Tipps
Ich würde sagen, entweder Verwendung
- INI-Dateien oder
- YAML oder
- Markdown oder
- Textile
oder einfach über jede leichte Auszeichnungssprache für angemessen halten.
Sie können in YAML aussehen wollen
Ich bin mit Pablo Fernandez Antwort. Ich denke, JSON könnte eine gute Wahl als gut.
XML ist eine Option.
Ich werde nur sagen, dass ein INI-String ziemlich lesbar ist:
Pet_Name = "Fred"
Aber, können Sie immer Ihr eigenes Format rollen. So etwas wie:
Key: ValueValueValueValueValueValue
Key: ValueValue
Im Grunde würden Sie die Zeichenfolge von Zeilenumbrüchen, sucht Textstrings explodieren infront Doppelpunkte und verwenden, die als Schlüssel und die Daten nach dem Doppelpunkt und vor dem Newline ist der Wert.