컴퓨터관련

php csv로 저장하는 법...펌

맘편한넘 2011. 3. 8. 18:09

업무 때문에 PHP로 Mysql에 있는 데이터를 CSV로 내보내는 부분 때문에
살짝 고민하다가 초 간단 버전으로 한번 만들어 봤습니다.

물론 초보용 팁 입니다. 저도 초보이기 때문에 =_=;
혹시 이런 거 때문에 골치아프신 분 있으시면 유용하게 참고 되셨으면
좋겠습니다 ^^

csv 아웃풋용 파일을 하나 만들어두시고 링크를 걸어주시면 됩니다.
-----------------------------------------------------------------------------------------------
- csv_output.php

<?
include "환경 설정 파일들";

// DB를 정의합니다. 여기서는 DB 클래스 파일을 include해서 사용했습니다.
$DB = new DB_Mysql($WEB_HOST,$WEB_USER,$WEB_PASS,$WEB_DB);

// 내보낼 데이터를 가져옵니다.
$sql = "select * from 테이블명 order by idx desc";
$DB->query($sql);

// CSV 파일 최상단에 표기 할 내용입니다.
$csv_dump .= "ID,UID,발송자,발송자메일주소,수신자ID,수신자UID,수신자메일주소,메일주소공개여부,메일내용,발송날짜,";
$csv_dump .= "\r\n";

// while 로 데이터를 변수에 쓸어 넣습니다 -_-;
while ($row = $DB->fetch_array()) {

                // CSV저장 시 CR+LF 및 , 표시가 있으면 안되므로 치환시킵니다.
    $row[mail_txt] = str_replace("\r\n","",$row[mail_txt]);
    $row[mail_txt] = str_replace(","," ",$row[mail_txt]);

                // 행 값을 csv_dump 에 쓸어담습니다 -_-;
    $csv_dump .= $row[UserID].",";
    $csv_dump .= $row[UserUID].",";
    $csv_dump .= $row[send_char].",";
    $csv_dump .= $row[send_mail].",";
    $csv_dump .= $row[re_UserID].",";
    $csv_dump .= $row[re_UserUID].",";
    $csv_dump .= $row[re_mail].",";
    $csv_dump .= $row[mailagree].",";
    $csv_dump .= $row[mail_txt].",";
    $csv_dump .= $row[regdate].",";
    $csv_dump .= "\r\n";

} // while문 종료

// CSV 파일로 저장합니다. 파일명을 날짜를 붙여 생성합니다.
$date = date("YmdHi");
$filename = "csvoutput_".$date.".csv";

header( "Content-type: application/vnd.ms-excel;charset=KSC5601" );
header("Content-Disposition: attachment; filename=$filename");
header( "Content-Description: PHP4 Generated Data" );

echo $csv_dump;

$DB->close();
?>