int fputcsv ( resource $handle , array $fields [, string $delimiter [, string $enclosure ]] )
(PHP 5 >= 5.1.0)

fgetcsv 함수는 csv 파일의 내용을 읽어 오는 역할을 하고, fputcsv 함수는 csv 파일에 내용을 추가합니다.

<?php
 if (!function_exists('fputcsv')) { 
   function fputcsv(&$handle, $fields = array(), $delimiter = ',', $enclosure = '"') {
    $str = '';
    $escape_char = '\\';
    foreach ($fields as $value) {
      if (strpos($value, $delimiter) !== false ||
          strpos($value, $enclosure) !== false ||
          strpos($value, "\n") !== false ||
          strpos($value, "\r") !== false ||
          strpos($value, "\t") !== false ||
          strpos($value, ' ') !== false) {
        $str2 = $enclosure;
        $escaped = 0;
        $len = strlen($value);
        for ($i=0;$i<$len;$i++) {
          if ($value[$i] == $escape_char) {
            $escaped = 1;
          } else if (!$escaped && $value[$i] == $enclosure) {
            $str2 .= $enclosure;
          } else {
            $escaped = 0;
          }
          $str2 .= $value[$i];
        }
        $str2 .= $enclosure;
        $str .= $str2.$delimiter;
      } else {
        $str .= $value.$delimiter;
      }
    }
    $str = substr($str,0,-1);
    $str .= "\n";
    return fwrite($handle, $str);
  }   
 } 

 $list = array (
    'aaa,bbb,ccc,dddd',
    '123,456,789',
    '"aaa","bbb"'
 );

 $fp = fopen('file.csv', 'w');
 foreach ($list as $line) {
    fputcsv($fp, split(',', $line));
 }

 fclose($fp);
 ?>

0 댓글