묻고답하기
게시판 내용을 엑셀파일로 변환하니 제목에 콤마(,)가 있으면 콤마(,)부터 뒷 부분이 모두 잘려서 보이지 않습니다
2017.12.12 21:12
엑셀파일로 변환한 후에도 콤마(,) 표시도 나타나고
콤마 뒷부분도 잘리지 않고 보이게 하려면 어떻게 해야 할지요?
str_replace 함수나 다른 방법이 혹시 있을까요?
게시판 내용의 엑셀파일 변환부분은 DB불러 오는 부분 제외하고 다음과 같은 형식이거든요..
$getFields = array("title","regdate","content"); //출력원하는 칼럼을 배열로 입력
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=doc_".date('Ymd').".xls");
$con = mysql_connect($info[host], $info[user], $info[pass]) || die(mysql_error());
mysql_query("set names utf8");
$con_db = mysql_select_db($info[db]) || die(mysql_error());
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="EN" dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv=Content-Type content=text/html; charset="utf-8">
</head>
<body>
<table border=1>
<tr align=center>
<?php
//제목 불러오기
$fields = mysql_list_fields("$info[db]", "$info[table]");
$columns = mysql_num_fields($fields);
for( $i=0 ; $i<$columns ; $i++ )
{
$field[$i]=mysql_field_name($fields, $i);
if( in_array($field[$i], $getFields) ) echo "<th>".$field[$i]."</th>";
}
$result = mysql_query("select var_name from xe_document_extra_keys where module_srl = $info[module_srl]");
while( $data = mysql_fetch_array($result) )
{
echo "<th>".htmlspecialchars($data[var_name])."</th>";
}
echo"</tr>";
//데이터 불러오기
$result = mysql_query("select * from $info[table] where module_srl = $info[module_srl]");
while( $data = mysql_fetch_assoc($result) )
{
echo"<tr>";
foreach( $data as $key => $val )
{
if( in_array($key, $getFields) )
{
if ($key == 'regdate') {
// echo "<td style='mso-number-format:\"0_ \";' >".htmlspecialchars($val)."</td>";
$date = DateTime::createFromFormat("YmdHis",$val);
echo "<td>".htmlspecialchars($date->format('Y-m-d H:i:s'))."</td>";
}elseif ($key == 'content'){
//echo "<td>".$val."</td>";
echo "<td >".htmlspecialchars(strip_tags(str_replace(" ","",$val)))."</td>";
}else {
echo "<td>".htmlspecialchars($val)."</td>";
}
}
if ($key == 'document_srl'){
$d_srl=$val;
}
}
$query=mysql_query("select eid from xe_document_extra_keys where module_srl = $info[module_srl]");
while($extra_title=mysql_fetch_array($query))
{
echo"<td>";
$egetFields = array("value","eid");
$extra_result = mysql_query("select * from xe_document_extra_vars where document_srl = $d_srl");
while( $edata = mysql_fetch_assoc($extra_result) )
{
$extra_str="";
foreach( $edata as $key => $val ){
if( in_array($key, $egetFields) ){
$extra_str = $val.",".$extra_str;
}
}
$extra_arr=explode(",",$extra_str);
if ($extra_title[eid]==$extra_arr[0]){
if($extra_title[eid]=="contact"){
echo str_replace("|@|","-",htmlspecialchars($extra_arr[1]));
}
elseif($extra_title[eid]=="date"){
$date = DateTime::createFromFormat("Ymd",$extra_arr[1]);
echo htmlspecialchars($date->format('Y-m-d'));
}
//기타 배열값들은 ',' 로 변경
elseif($extra_title[eid]=="mb_incomplete"||$extra_title[eid]=="mb_cs"){
echo str_replace("|@|",",",htmlspecialchars($extra_arr[1]));
}
else{
echo htmlspecialchars($extra_arr[1]);
}
}
}
echo"</td>";
}
/////////////////////////////////////////////////////////////////////
echo"</tr>";
}
- [2016/12/30] 묻고답하기 회원 포인트를 엑셀로 받을 수 있나요? *2
- [2014/08/12] 묻고답하기 sql 에서 게시판 글 데이터를 엑셀화해서 한번에 올리려고합니다.
- [2010/08/04] 묻고답하기 제로보드 게시판과 회원정보 변환방법 문의 드립니다.