สวัสดีครับ พอดีผมกำลังหัดเขียน PHP อยู่ พอดีผมติดปัญหาตรงที่ว่า พอจะ Export ไฟล์ excel ที่ดึงข้อมูลมาจาก sql แล้วภาษาไทยกลายเป็นภาษาต่างดาวน่ะครับ ผมเซ็ต charset เป็น utf-8 แล้วก็ไม่ได้อยู่ดี แต่พอให้แสดงผล table ในหน้าเว็บก็ปกติดี ข้อมูลใน phpadmin ก็แสดงผลภาษาไทยปกติดี เซ็ท collation เป็น utf-8 เหมือนกันครับ
อันนี้ไฟล์ connect ครับ :
<?php
$con= mysqli_connect("localhost","root","1234","db_comment_system") or die("Error: " . mysqli_error($con));
mysqli_query($con, "SET NAMES 'utf8' ");
?>
อันนี้ไฟล์ Export ครับ :
<?php
// Load the database configuration file
include_once './login/connect.php';
// Filter the excel data
function filterData(&$str){
$str = preg_replace("/\t/", "\\t", $str);
$str = preg_replace("/\r?\n/", "\\n", $str);
if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
}
// Excel file name for download
$fileName = "members-data_" . date('Y-m-d') . ".xls";
// Column names
$fields = array('id', 'เลขประจำตัว', 'ชื่อ', 'ชั้นปี', 'คำถาม', 'คำตอบ');
// Display column names as first row
$excelData = implode("\t", array_values($fields)) . "\n";
// Fetch records from database
$query = $con->query("SELECT * FROM tbl_comments ORDER BY id DESC");
if($query->num_rows > 0){
// Output each row of the data
while($row = $query->fetch_assoc()){
$lineData = array($row['id'], $row['serialno'], $row['name'], $row['comment'], $row['answer']);
array_walk($lineData, 'filterData');
$excelData .= implode("\t", array_values($lineData)) . "\n";
}
}else{
$excelData .= 'No records found...'. "\n";
}
// Headers for download
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=\"$fileName\"");
// Render excel data
echo $excelData;
exit;
PHP Export sql To Excel เป็นภาษาต่างดาวครับ
อันนี้ไฟล์ connect ครับ :
$con= mysqli_connect("localhost","root","1234","db_comment_system") or die("Error: " . mysqli_error($con));
mysqli_query($con, "SET NAMES 'utf8' ");
?>
// Load the database configuration file
include_once './login/connect.php';
// Filter the excel data
function filterData(&$str){
$str = preg_replace("/\t/", "\\t", $str);
$str = preg_replace("/\r?\n/", "\\n", $str);
if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
}
// Excel file name for download
$fileName = "members-data_" . date('Y-m-d') . ".xls";
// Column names
$fields = array('id', 'เลขประจำตัว', 'ชื่อ', 'ชั้นปี', 'คำถาม', 'คำตอบ');
// Display column names as first row
$excelData = implode("\t", array_values($fields)) . "\n";
// Fetch records from database
$query = $con->query("SELECT * FROM tbl_comments ORDER BY id DESC");
if($query->num_rows > 0){
// Output each row of the data
while($row = $query->fetch_assoc()){
$lineData = array($row['id'], $row['serialno'], $row['name'], $row['comment'], $row['answer']);
array_walk($lineData, 'filterData');
$excelData .= implode("\t", array_values($lineData)) . "\n";
}
}else{
$excelData .= 'No records found...'. "\n";
}
// Headers for download
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=\"$fileName\"");
// Render excel data
echo $excelData;
exit;