Записать CSV в файл без вложений в PHP - PullRequest
47 голосов
/ 26 ноября 2009

Есть ли встроенная функция или твердый класс / библиотека для записи массива в виде строки в CSV-файле без вложений? fputcsv по умолчанию будет ", если для параметра вложенности ничего не передано. Google подводит меня (возвращает результаты для целой пачки страниц около fputcsv), а библиотеки PEAR делают более или менее то же самое, что и fputcsv.

То, что работает точно так же, как fputcsv, но позволяет полям оставаться без кавычек.

в настоящее время: "field 1","field 2",field3hasNoSpaces

желательно: field 1,field 2,field3hasNoSpaces

Ответы [ 11 ]

0 голосов
/ 26 ноября 2009

Это то, что я использую для помещения стандартного CSV в массив ...

function csv_explode($delim=',', $str, $enclose='"', $preserve=false){
        $resArr = array();
        $n = 0;
        $expEncArr = explode($enclose, $str);
        foreach($expEncArr as $EncItem){
                if($n++%2){
                        array_push($resArr, array_pop($resArr) . ($preserve?$enclose:'') . $EncItem.($preserve?$enclose:''));
                }else{
                        $expDelArr = explode($delim, $EncItem);
                        array_push($resArr, array_pop($resArr) . array_shift($expDelArr));
                        $resArr = array_merge($resArr, $expDelArr);
                }
        }
        return $resArr;
} 

Затем вы можете вывести все, что хотите, в цикле foreach.

...