728x90

서버에 업로드한 파일을 읽어서 파일의 내용을 분석하여 화면에 뿌리는 방법을 테스트 해보려고 작성해본 거다.

보통 엑셀 파일을 VBA 로 내보내기를 하면 인코딩 모드가 euc-kr 모드로 되어 있다.

그래서 서버에 설정된 인코딩모드가 UTF-8 이면 파일의 인코딩 모드를 변경해줘야 한다.

한줄씩 읽어서 한줄내의 구분을 ; 로 하는데, line[0], line[1] 이런 식으로 배열로 받아들인다.

보통 DB에서 가져오면 배열 형태로 바로 화면에 출력하는데, 때로는 가공을 한 다음에 화면에 뿌리거나 다시 DB에 저장해야 할 때가 있다.

이때 가져온 필드를 배열로 만드는 함수가 array_push 이다.


<?php
echo "파일 연습";
echo "<br />";

$file=fopen("data.csv","r");
if(!$file){
    echo("Failed to open the file");
    exit;
} else {
    echo "파일이 정상적으로 열렸습니다";
    echo "<br />";

}

while($line = fgetcsv($file,1000, ";")) { // 구분자는 ; 로 지정, 한줄씩 라인끝까지 읽어라.

$line0 = iconv('euc-kr','utf-8',$line[0]); // euc_kr 자료를 utf-8 로 인코딩 모드 변환
$line1 = iconv('euc-kr','utf-8',$line[1]);
$line2 = iconv('euc-kr','utf-8',$line[2]);
$line3 = iconv('euc-kr','utf-8',$line[3]);
$line4 = iconv('euc-kr','utf-8',$line[4]);
$line5 = iconv('euc-kr','utf-8',$line[5]);
$line6 = iconv('euc-kr','utf-8',$line[6]);

$subject = addslashes(trim($line0));
$content = addslashes(trim($line1));
$category = trim($line2);
$line[3] = addslashes(trim($line3));
$line[4] = addslashes(trim($line4));
$line[5] = addslashes(trim($line5));
$line[6] = addslashes(trim($line6));

echo "제목 : ".$subject;
echo "<br />";
echo "내용 : ".$content;
echo "<br />";

$contentstr = explode("/", $content);
echo count($contentstr);
echo "<br />";
$content    = count($contentstr) ? trim($contentstr[0]) : $content;
$content1    = $contentstr[1] ? trim($contentstr[1]) : '';
$content2    = $contentstr[2] ? trim($contentstr[2]) : '';

echo "content = ".$content;
echo "<br />";
echo "content1 = ".$content1;
echo "<br />";
echo "content2 = ".$content2;
echo "<br />";

$search = array();
for( $i = 0; $i < 4; $i++ ) {
    array_push($search, $line[$i+3]);
    if (!$search[$i]) break;    // 값이 없으면 for 문을 빠져나가라
    echo $i." = ".$search[$i];
    echo "<br />";
// for 문 종료
    echo "0 = ".$search[0];
    echo "<br />";
    echo "1 = ".$search[1];
    echo "<br />";
    echo "2 = ".$search[2];
    echo "<br />";
    echo "3 = ".$search[3];
    echo "<br />";
    echo "4 = ".$search[4];
    echo "<br />";
    echo "5 = ".$search[5];
    echo "<br />";
    echo "6 = ".$search[6];
    echo "<br />";

}    // While 문 종료
fclose ($file);

?>

블로그 이미지

Link2Me

,