php 엑셀 다운로드시 < > 안의 내용 지워지는 문제 채택완료
안녕하세요.
게시판 테이블을 엑셀로 다운로드를 받고 있는데 내용에 < > 부분이 있으면 해당 내용이 지워진 상태에서 다운로드가 됩니다.
어떻게 해결을 하면 될까요?
* 예시
- 글제목(원본) : 다음 중 <서울>에 속하는 지역은?
- 엑셀 다운로드시 : 다음 중 에 속하는 지역은?
- 엑셀 관련 코드를 지우고 html로 보았을때는 제대로 나오지만 엑셀로 다운로드 했을때는 < > 와 함께 안의 내용이 지워집니다.
$list 관련 소스에서 치환하거나 그런건 없습니다.
엑셀 다운로드 관련 소스
</p>
<p><?php</p>
<p> 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");</p>
<p>// 대충 $list 관련 소스 반목문으로 불러옴</p>
<p>?>></p>
<p> </p>
<p> <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></p>
<p> </p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
2년 전
</p>
<p><?php
$tmp_file_name = 'test';</p>
<p> 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");</p>
<p>$g4 = ['charset' => 'utf-8'];
$lists = [
['subject' => '다음 중 <서울>에 속하는 지역은?', 'content' => '1'],
['subject' => '다음 중 [서울]에 속하는 지역은?', 'content' => '2'],
['subject' => '다음 중 {서울}에 속하는 지역은?', 'content' => '3'],
['subject' => '다음 중 (서울)에 속하는 지역은?', 'content' => '4'],
['subject' => '다음 중 서울에 속하는 지역은?', 'content' => '5'],
];</p>
<p>$list = '';
foreach ($lists as $row) {
$subject = htmlspecialchars($row['subject']);
$content = $row['content'];</p>
<p> $list .= <<<HEREDOC
<tr>
<td>{$subject}</td><td>{$content}</td>
</tr>
HEREDOC;
}</p>
<p>?>
<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></p>
<p>
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
D
2년 전
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
채택
답변대기
답변대기
채택
답변대기
htmlspecialchars 적용하니 잘 나오네요!