php导出非乱码非乱序 奇葩问题求大神挫进来帮帮小弟 数据库utf-8excel数据 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用另外一种方法也是一样的效果,代码如下: <?php//iconv("utf8","gb2312",$v)。数据库用的UTF8,导出csv时如不转换excel打开中文将显示乱码(文本正常)require_once './include/common.inc.php';function exportToCsv($csv_data, $filename = 'export.csv') { $csv_terminated = "\n"; $csv_separator = ","; $csv_enclosed = '"'; $csv_escaped = "\\"; // Gets the data from the database $schema_insert = ''; $out = ''; // Format the data foreach ($csv_data as $row) { $schema_insert = ''; $fields_cnt = count($row); //printr($row); $tmp_str = ''; foreach($row as $v) { $tmp_str .= $csv_enclosed.str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, iconv("utf8","gb2312",$v)).$csv_enclosed.$csv_separator; } // end for $tmp_str = substr($tmp_str, 0, -1); $schema_insert .= $tmp_str; $out .= $schema_insert; $out .= $csv_terminated; } // end while header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Length: " . strlen($out)); header("Content-type: text/x-csv;charset=utf-8"); header("Content-Disposition:filename=$filename");#header('Content-Disposition: attachment;filename="'.iconv('utf-8', "gb2312", $filename)); echo $out;}#$title = array("uid","username","company");#$title = $_SESSION["exp_title"];$title = array();$field = array();foreach ($_SESSION["exp_title"] as $key => $val){ $title[] = $key; $field[] = $val;}#$query = $mysqli->query("select uid,username,phone from ccna_members limit 10") or die($mysqli->error);#$query = $mysqli->multi_query("select * from ccna_members limit 10") or die($mysqli->error);$query = $mysqli->multi_query($_SESSION["exp_sql"]) or die($mysqli->error);$query = $mysqli->store_result();//$csv_data = array(array('uid', 'username'));//所有记录就存这啦$csv_data = array(array());//压入表头,将字段放到第一行for ($i=0; $i < count($field); $i++) { $csv_data[0][$i]= $field[$i];}while($row = mysqli_fetch_array($query,MYSQLI_BOTH)){ //array_push($csv_data, array($row[0],$row['username'])); $row_array = array(); for ($i=0; $i < count($title); $i++) { #array_push($row_array,iconv("utf-8","gb2312",$row[$title[$i]])); array_push($row_array,$row[$title[$i]]); } array_push($csv_data,$row_array);}exportToCsv($csv_data,$_SESSION["exp_filename"].".csv");?> echo $cardid."\t";改为echo “‘$cardid\t"; 可以我改成echo "$cardid\t"; 还是不行,不知道为什么。 "’$cardid\t"; 有个单引号是也在想:字太小可能看不清 php执行vbs脚本 递归问题。。。 如何实现留言中插入图片 高价求人仿此网站,回答就给分 随机读取数据的 问题 请问PHP中类的静态变量,有效域是全局还是SESSION呢? php+mysql 博客数据库查询问题 PHPMailer发送outlook会议邮件怎么自动添加到日历里 time和UNIX_TIMESTAMP如何统一? php mysql 从android客户端通过post方法发出汉字到Php,Php返回客户端,就出现乱码?怎么解决 php变量的新手问题
//iconv("utf8","gb2312",$v)。数据库用的UTF8,导出csv时如不转换excel打开中文将显示乱码(文本正常)
require_once './include/common.inc.php';function exportToCsv($csv_data, $filename = 'export.csv') {
$csv_terminated = "\n";
$csv_separator = ",";
$csv_enclosed = '"';
$csv_escaped = "\\"; // Gets the data from the database
$schema_insert = ''; $out = ''; // Format the data
foreach ($csv_data as $row)
{
$schema_insert = '';
$fields_cnt = count($row);
//printr($row);
$tmp_str = '';
foreach($row as $v)
{
$tmp_str .= $csv_enclosed.str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, iconv("utf8","gb2312",$v)).$csv_enclosed.$csv_separator;
} // end for
$tmp_str = substr($tmp_str, 0, -1);
$schema_insert .= $tmp_str; $out .= $schema_insert;
$out .= $csv_terminated;
} // end while header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Length: " . strlen($out));
header("Content-type: text/x-csv;charset=utf-8");
header("Content-Disposition:filename=$filename");
#header('Content-Disposition: attachment;filename="'.iconv('utf-8', "gb2312", $filename));
echo $out;
}#$title = array("uid","username","company");
#$title = $_SESSION["exp_title"];
$title = array();
$field = array();foreach ($_SESSION["exp_title"] as $key => $val){
$title[] = $key;
$field[] = $val;
}#$query = $mysqli->query("select uid,username,phone from ccna_members limit 10") or die($mysqli->error);
#$query = $mysqli->multi_query("select * from ccna_members limit 10") or die($mysqli->error);
$query = $mysqli->multi_query($_SESSION["exp_sql"]) or die($mysqli->error);
$query = $mysqli->store_result();
//$csv_data = array(array('uid', 'username'));
//所有记录就存这啦
$csv_data = array(array());//压入表头,将字段放到第一行
for ($i=0; $i < count($field); $i++) {
$csv_data[0][$i]= $field[$i];
}while($row = mysqli_fetch_array($query,MYSQLI_BOTH)){
//array_push($csv_data, array($row[0],$row['username']));
$row_array = array();
for ($i=0; $i < count($title); $i++) {
#array_push($row_array,iconv("utf-8","gb2312",$row[$title[$i]]));
array_push($row_array,$row[$title[$i]]);
}
array_push($csv_data,$row_array);
}exportToCsv($csv_data,$_SESSION["exp_filename"].".csv");
?>
改为
echo “‘$cardid\t";
可以我改成echo "$cardid\t"; 还是不行,不知道为什么。
有个单引号
是也在想:字太小可能看不清