php 엑셀 다운로드시 < > 안의 내용 지워지는 문제

php 엑셀 다운로드시 < > 안의 내용 지워지는 문제

QA

php 엑셀 다운로드시 < > 안의 내용 지워지는 문제

본문

안녕하세요.

 

게시판 테이블을 엑셀로 다운로드를 받고 있는데 내용에 < > 부분이 있으면 해당 내용이 지워진 상태에서 다운로드가 됩니다.

 

어떻게 해결을 하면 될까요?

 

* 예시

- 글제목(원본) : 다음 중 <서울>에 속하는 지역은?

- 엑셀 다운로드시 : 다음 중 에 속하는 지역은?

- 엑셀 관련 코드를 지우고 html로 보았을때는 제대로 나오지만 엑셀로 다운로드 했을때는 < > 와 함께 안의 내용이 지워집니다.

 

$list 관련 소스에서 치환하거나 그런건 없습니다.

 

엑셀 다운로드 관련 소스

 


<?php
    header("Content-type: application/vnd.ms-excel" );
    header("Content-Disposition: attachment; filename={$tmp_file_name}.xls" );
    header("Content-Description: PHP4 Generated Data" );
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0,pre-check=0");
    header("Pragma: public");
// 대충 $list 관련 소스 반목문으로 불러옴
?>>
 
    <meta http-equiv="content-type" content="text/html; charset=<?=$g4['charset']?>">
    <style>
        td { mso-number-format:\@; }
        br{mso-data-placement:same-cell;}
    </style>
    <table border="1" cellpadding='5'><?php echo $list?><table>
 

 

 

 

이 질문에 댓글 쓰기 :

답변 1


<?php
$tmp_file_name = 'test';
    header("Content-type: application/vnd.ms-excel" );
    header("Content-Disposition: attachment; filename={$tmp_file_name}.xls" );
    header("Content-Description: PHP4 Generated Data" );
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0,pre-check=0");
    header("Pragma: public");
$g4 = ['charset' => 'utf-8'];
$lists = [
    ['subject' => '다음 중 <서울>에 속하는 지역은?', 'content' => '1'],
    ['subject' => '다음 중 [서울]에 속하는 지역은?', 'content' => '2'],
    ['subject' => '다음 중 {서울}에 속하는 지역은?', 'content' => '3'],
    ['subject' => '다음 중 (서울)에 속하는 지역은?', 'content' => '4'],
    ['subject' => '다음 중 서울에 속하는 지역은?', 'content' => '5'],
];
$list = '';
foreach ($lists as $row) {
    $subject = htmlspecialchars($row['subject']);
    $content = $row['content'];
    $list .= <<<HEREDOC
    <tr>
        <td>{$subject}</td><td>{$content}</td>
    </tr>
    HEREDOC;
}
?>
  <meta http-equiv="content-type" content="text/html; charset=<?=$g4['charset']?>">
    <style>
        td { mso-number-format:\@; }
        br{mso-data-placement:same-cell;}
    </style>
    <table border="1" cellpadding='5'><?php echo $list?><table>
답변을 작성하시기 전에 로그인 해주세요.
전체 224
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT