解决方案 »

  1.   

    用另外一种方法也是一样的效果,代码如下: <?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");
    ?>
      

  2.   

    echo   $cardid."\t";
    改为
    echo   “‘$cardid\t";
      

  3.   


    可以我改成echo   "$cardid\t";    还是不行,不知道为什么。
      

  4.   

     "’$cardid\t"; 
    有个单引号
    是也在想:字太小可能看不清