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 적용하니 잘 나오네요!