Ben bir insan okunabilir ihtiyacınız var, Ancak ayrıştırma-mümkün Document Format

5 Cevap php

Ben orada ne gerek gerçekleştirmek için bir milyon iyi yolu vardır ama ben hiçbir seçim var ve ben bunu bu şekilde yapmak zorunda bu projelerin birinde çalışıyorum. İşte:

Orada kullanıcı bunu doldurur ve çarptığında bir web formu, bir insan okunabilir bir metin dosyası form verilerini kullanılarak oluşturulur gönderin. Bu şuna benzer:

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

My problem is this: Ben kullanıcı düzenlemek böylece geri web formuna bu metin dosyasını ayrıştırmak gerekiyor.

Nasıl, kusursuz bir şekilde, bunu başarabilir? Bir veritabanı Ben bu metin dosyalarını kullanmak zorunda, bir seçenek değildir.

My Questions:

  • Yukarıdaki örnekte biçimi kullanarak bunu yapmak için kusursuz bir yolu var mı?
  • Okunabilir format daha iyi çalışacak hangi insan (diğer bir deyişle ben biçimini değiştirebilirsiniz)
  • İnsan okunabilir olmayan bir programcı okumak ve neyin ne olduğunu bilmek anlamına gelir.

Bu proje PHP kullanır.

UPDATE

Insan okunabilir derken herkes büyükannesi dahil metni değil onun tarafından boğulmuş, okuyabilir demek.

5 Cevap

I Need a Human Readable, Yet Parse-able Document Format

Bu YAML olacak şekilde tasarlanmıştır budur. Sen kendi sitesinde veya Wikipedia bu konuda daha fazla bilgi edinebilirsiniz.

Vikipedi alıntı:

YAML syntax was designed to be easily mapped to data types common to most high-level languages: list, hash, and scalar. Its familiar indented outline and lean appearance makes it especially suited for tasks where humans are likely to view or edit data structures, such as configuration files, dumping during debugging, and document headers

XML üzerinde avantajı, kullanıcıların kafasını karıştırabilecek etiketleri kullanabilirsiniz olmamasıdır. Ve ben sadece işaretler, noktalı virgül ve tırnak eşittir yerine iki nokta üst üste çünkü (aynı zamanda sözü edilen) INI daha temiz olduğunu düşünüyorum.

: Örnek YAML gibi görünüyor

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.

Ben kullanımı da söyleyebilirim

ya da sadece herhangi bir konuda lightweight markup language uygun bulduğunuz.

Sen YAML içine bakmak isteyebilirsiniz

http://www.yaml.org/

Ben Pablo Fernandez yanıt ile katılıyorum. Ben JSON de iyi bir seçim olabilir düşünüyorum.

XML bir seçenektir.

Ben sadece bir INI dize oldukça okunabilir olduğunu söyleyecek değilim:

Pet_Name = "Fred"

Ama, her zaman kendi biçimini rulo olabilir. Gibi bir şey:

Key: ValueValueValueValueValueValue
Key: ValueValue

Temel olarak, satır karakteriyle dize patlayabilir kolonların içimde metin dizeleri için bakmak ve anahtar olarak kullanan, ve kolon sonra yeni satır önce veri değeri olacaktır.