다음과 같은 엑셀 서식으로 다운로드 파일로 구현한 예입니다.


<?PHP
  // Original PHP code by Chirp같은 Internet: www.chirp.com.au
  // Please acknowledge use of this code by including.

  $data = array(
    array(
       "firstname" => "Mary",

       "lastname" => "Johnson",
       "age" => 25),
    array(

       "firstname" => "Amanda", 

       "lastname" => "Miller", 

       "age" => 18),
    array(

       "firstname" => "James", 

       "lastname" => "Brown", 

       "age" => 31),
    array(

       "firstname" => "Patricia", 

       "lastname" => "Williams",

       "age" => 7),
    array(

       "firstname" => "Michael", 

       "lastname" => "Davis", 

       "age" => 43),
    array(

       "firstname" => "Sarah", 

       "lastname" => "Miller", 

       "age" => 24),
    array(

       "firstname" => "Patrick", 

       "lastname" => "Miller", 

       "age" => 27)
  );

  $colnames = array(
     'firstname' => "First name",
     'lastname' => "Last name",
     'age' => "Age",
  );

  function map_colnames($input)
  {
    global $colnames;
    return isset($colnames[$input])?$colnames[$input] : $input;
  }

  function cleanData(&$str)
  {
    if($str == 't') $str = 'TRUE';
    if($str == 'f') $str = 'FALSE';
    if(preg_match("/^0/", $str)

       || preg_match("/^\+\d{8,}$/", $str)

       || preg_match("/^\d{4}.\d{1,2}.\d{1,2}/", $str)) {

      $str = "'$str";
    }
    if(strstr($str, '"')) 

      $str = '"' . str_replace('"', '""', $str) . '"';
  }

  // filename for download
  $filename = "website_data_" . date('Ymd') . ".csv";

  header("Content-Disposition: attachment; filename=\"$filename\"");
  header("Content-Type: text/csv");

  $out = fopen("php://output", 'w');

  $flag = false;
  foreach($data as $row) {
    if(!$flag) {
      // display field/column names as first row
      $firstline = array_map("map_colnames", array_keys($row));
      fputcsv($out, $firstline, ',', '"');
      $flag = true;
    }
    array_walk($row, 'cleanData');
    fputcsv($out, array_values($row), ',', '"');
  }

  fclose($out);
  exit;
 ?>

출처: http://www.the-art-of-web.com/php/dataexport/

0 댓글