php - significado - Necesito un formato de documento legible por humanos, pero que se pueda analizar
legible significado (5)
Necesito un formato de documento legible por humanos, pero que se pueda analizar
Esto es para lo que fue diseñado YAML . Puedes leer más sobre esto en su sitio o en Wikipedia .
Para citar Wikipedia:
La sintaxis YAML fue diseñada para ser fácilmente asignada a los tipos de datos comunes a la mayoría de los lenguajes de alto nivel: lista, hash y escalar. Su esquema con sangría familiar y su apariencia magra lo hacen especialmente adecuado para tareas donde los humanos pueden ver o editar estructuras de datos, como archivos de configuración, volcado durante la depuración y encabezados de documentos
La ventaja sobre XML es que no usa etiquetas que podrían confundir a los usuarios. Y creo que es más limpio que el INI (que también se mencionó) porque simplemente usa dos puntos en lugar de signos, puntos y comas.
Muestra YAML se ve como:
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.
Estoy trabajando en uno de esos proyectos en los que hay un millón de formas mejores de lograr lo que necesito, pero no tengo otra opción y tengo que hacerlo de esta manera. Aquí está:
Hay un formulario web, cuando el usuario lo llena y hace clic en un envío, se crea un archivo de texto legible por humanos utilizando los datos del formulario. Se parece a esto:
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
Mi problema es este: necesito analizar este archivo de texto de nuevo en el formulario web para que el usuario pueda editarlo.
¿Cómo podría yo, de manera infalible, lograr esto? Una base de datos no es una opción, tengo que usar estos archivos de texto.
Mis preguntas:
- ¿Hay alguna manera infalible de hacerlo utilizando el formato del ejemplo anterior?
- ¿Qué formato legible para humanos funcionaría mejor (en otras palabras, puedo cambiar el formato)
- Humano legible significa que un programador no puede leerlo y saber qué es qué.
Este proyecto utiliza PHP.
ACTUALIZAR
Por legible para los humanos quiero decir que cualquiera puede leer el texto y no sentirse abrumado por él, incluida su abuela.
Es posible que desee mirar en YAML
Estoy de acuerdo con la respuesta de Pablo Fernández. Creo que JSON podría ser una buena opción también.
Solo voy a decir que una cadena INI es bastante legible:
Pet_Name = "Fred"
Pero, siempre puedes rodar tu propio formato. Algo como:
Key: ValueValueValueValueValueValue
Key: ValueValue
Básicamente, usted explotaría la cadena con nuevas líneas, buscaría cadenas de texto frente a dos puntos y la usaría como la clave, y los datos después de los dos puntos y antes de la nueva línea son el valor.
Yo diría que usar
- Archivos INI o
- YAML o
- Markdown o
- Textile
o casi cualquier lenguaje de marcado ligero que considere apropiado.
XML es una opción.