* Tüm * Tarla için Muhafaza kullanın fputcsv zorlamak

2 Cevap php

I fputcsv bir açık dosya tanıtıcısı bir satır yazmak için kullandığınızda, PHP İhtiyacı inandığı herhangi bir sütun için kapatıcı bir karakter katacak, ancak muhafazaları olmadan diğer sütunları bırakacaktır.

Örneğin, böyle bir hat ile son olabilir

11,"Bob ",Jenkins,"200 main st. USA ",etc

Her alanda sonuna kadar sahte bir boşluk ekleme Kısa, her karakteri (bir "varsayılan) kasayla sütunları çevrelemek için fputcsv zorlamak için herhangi bir yolu var mı?

2 Cevap

No, fputcsv () yalnızca aşağıdaki koşullar altında yer alan çevreleyen

/* enclose a field that contains a delimiter, an enclosure character, or a newline */
if (FPUTCSV_FLD_CHK(delimiter) ||
  FPUTCSV_FLD_CHK(enclosure) ||
  FPUTCSV_FLD_CHK(escape_char) ||
  FPUTCSV_FLD_CHK('\n') ||
  FPUTCSV_FLD_CHK('\r') ||
  FPUTCSV_FLD_CHK('\t') ||
  FPUTCSV_FLD_CHK(' ')
)

Hayır "her zaman içine" seçeneği yoktur.

Bu çözüm ile mutlu ama ben yaptım ve çalıştı budur. Fikir fputcsv üzerinde muhafaza karakteri gibi boş bir karakter seti ve dizinin her elemanı üzerinde bazı alıntılar eklemektir.

function encodeFunc($value) {
    return "\"$value\"";
}

fputcsv($handler, array_map(encodeFunc, $array), ',', chr(0));