>  기사  >  백엔드 개발  >  PHP가 잘못된 문자를 사용하여 Excel을 내보내기 위해 mysql을 내보내는 경우 어떻게 해야 합니까?

PHP가 잘못된 문자를 사용하여 Excel을 내보내기 위해 mysql을 내보내는 경우 어떻게 해야 합니까?

藏色散人
藏色散人원래의
2020-08-31 10:08:502643검색

MySQL을 Excel로 내보내는 잘못된 PHP에 대한 솔루션: 먼저 시간대와 헤더 정보를 설정한 다음 "ob_end_clean();"을 통해 버퍼를 지운 다음 마지막으로 콘텐츠를 쿼리하고 데이터베이스 데이터를 내보냅니다.

PHP가 잘못된 문자를 사용하여 Excel을 내보내기 위해 mysql을 내보내는 경우 어떻게 해야 합니까?

추천: "PHP 비디오 튜토리얼"

PHP는 데이터베이스를 쿼리하여 Excel을 내보내고 잘못된 문제를 해결합니다. 네이티브 코드에는 플러그인이 필요하지 않습니다

최근에 정보 시스템을 작성했고 Excel로 데이터베이스 내용을 내보내야 합니다

아래에 코드를 게시할 예정이며 phpexcel 플러그인은 필요하지 않습니다

시스템 요구 사항: php5.6+

<?php
date_default_timezone_set(&#39;PRC&#39;);//设置时区
 
/*设置head头信息*/
ob_end_clean();//清除缓冲区,避免乱码
Header("Content-Type:application/vnd.ms-excel;charset=UTF-8");
Header("Accept-Ranges:bytes");
Header("Content-Disposition:attachment;filename="."导出excel的名字".date(&#39;YmdHis&#39;).".xls");
Header("Pragma:no-cache");
Header("Expires:0");
 
$str = $str2 = null;
/*设置表格信息*/
$str.= "序号"."\t";
$str.= "学号"."\t";
$str.= "姓名"."\t";
$str.= "性别"."\t";
$str.= "学院"."\t";
$str.= "年级"."\t";
$str.= "班级"."\t";
$str.= "手机号"."\t";
$str.= "报名时间"."\t\r\n";
$info = iconv("UTF-8","GBK",$str);
echo $info;
 
/*查询内容导出数据库数据*/
$con = new mysqli("localhost", "root", "password", "detabase");
if (!$con) {
    die(mysqli_error()) ;
}
//$sql = " select * from bmxx";
//$res = mysqli_query($con, $sql);
 
mysqli_query($con,"SET NAMES utf8");//解决数据库中有汉字时显示在前台出现乱码问题
$result = mysqli_query($con,"SELECT * FROM `bmxx`");
 
while($row = mysqli_fetch_assoc($result)){
    $list[] = $row;
}
mysqli_free_result($result);
mysqli_close($con);
$co = 1;
foreach($list as $v){
    $str2.= trim($co++)."\t";
    $str2.= trim(iconv("UTF-8","GBK","\t".$v[&#39;num&#39;]."\t"))."\t";
    $str2.= trim(iconv("UTF-8","GBK",$v[&#39;name&#39;]))."\t";
    $str2.= trim(iconv("UTF-8","GBK",$v[&#39;sex&#39;]))."\t";
    $str2.= trim(iconv("UTF-8","GBK",$v[&#39;xueyuan&#39;]))."\t";
    $str2.= trim(iconv("UTF-8","GBK",$v[&#39;grade&#39;]))."\t";
    $str2.= trim(iconv("UTF-8","GBK",$v[&#39;class&#39;]))."\t";
    $str2.= trim(iconv("UTF-8","GBK",$v[&#39;phone&#39;]))."\t";
    $str2.= trim(iconv("UTF-8","GBK",$v[&#39;time&#39;]))."\t\r\n";
}
echo $str2;
?>

처음에 이 코드 줄을 추가하지 않았습니다. 결과적으로 잘못된 출력이 발생합니다. 각 데이터 생성 전에 버퍼를 지우기만 하면 됩니다.

ob_end_clean();//清除缓冲区,避免乱码

위 내용은 PHP가 잘못된 문자를 사용하여 Excel을 내보내기 위해 mysql을 내보내는 경우 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.