我正在开展其中一个项目,其中有一百万个更好的方法来完成我需要的东西,但我别无选择,我必须这样做。这是:
有一个Web表单,当用户填写它并点击提交时,使用表单数据创建一个人类可读的文本文件。它看起来像这样:
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
我的问题是:我需要将此文本文件解析回网络表单,以便用户可以对其进行编辑。
我怎么能以万无一失的方式实现这一目标?数据库不是一个选项,我必须使用这些文本文件。
我的问题:
这个项目使用PHP。
更新
通过人类可读,我的意思是任何人都可以阅读文本而不会被它淹没,包括你的祖母。
答案 0 :(得分:21)
我需要一个人类可读的 可解析的文档格式
这就是YAML的设计目标。您可以在其网站或Wikipedia上详细了解相关信息。
引用维基百科:
YAML语法很容易设计 映射到大多数共同的数据类型 高级语言:list,hash和 标量。它熟悉的缩进 轮廓和精益外观使它成为现实 特别适合任务 人类可能会查看或编辑数据 结构,如配置 文件,调试期间转储和 文件标题
优于XML的优势在于它不使用可能会混淆用户的标签。而且我认为它比INI更清洁(也提到了)因为它只使用冒号而不是等号,分号和引号。
示例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.
答案 1 :(得分:11)
答案 2 :(得分:5)
答案 3 :(得分:1)
XML是一个选项。
答案 4 :(得分:0)
我只想说INI字符串非常易读:
Pet_Name = "Fred"
但是,您可以随时滚动自己的格式。类似的东西:
Key: ValueValueValueValueValueValue
Key: ValueValue
基本上,你会用换行符爆炸字符串,查找冒号前面的文本字符串并将其用作键,冒号后和换行符之前的数据是值。