[ php ] PHP에서 CSV 로 내보내기 > php

본문 바로가기

사이트 내 전체검색

php

[ php ] PHP에서 CSV 로 내보내기

작성일 18-09-28 13:25

페이지 정보

작성자 웹지기 조회 12,778회 댓글 0건

본문

csv 아웃풋용 파일을 하나 만들어두시고 링크

----------------------------------------------------------------------------------------------- 

- csv_output.php 

[code]

<? 

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(); 

?> 

[/code]


데이터를 "(큰따옴표) 로 감싸면 ,(콤마)와 (엔터) 의 데이터도 인식합니다. 

데이터 안의 "(큰따옴표)를 ""(쌍큰따옴표)로 입력하면 데이터 안의 "(큰 따옴표)도 입력가능합니다. 

(ex: "데이터1","데이?,") 

위의 예에서 while 문만 

[code]

while(...) { 

    $csv_dump .='"'.implode('","', str_replace('"', '""', $row)).'"'."\n"; 

[/code]

정도로 입력하면 되겠네요. 

물론 implode 를 할때는 Select 질의시 필요한 필드(ex: select ID, USER...)를 선언해야 합니다.

adodb 를 쓰면 편하게 사용할수 있습니다. 

[code]

$rs = $CON->Execute($query); 

echo rs2csv($rs);

[/code]


추천0

비추천 0

댓글목록

등록된 댓글이 없습니다.

전체 82건 3 페이지

이미지 목록

게시물 검색
Copyright © 즐거운 코딩 생활 ( funyphp ). All rights reserved.
PC 버전으로 보기