在“;”中更改分隔符“,”来自.csv

时间:2016-02-06 08:34:29

标签: php csv mysqli

此代码导出一个file.csv并用“,”

分隔列

我对此代码有另一个小问题。我的电脑的区域设置不在美国,而在罗马尼亚语。这意味着,美国的分离是由“,”和罗马尼亚语完成的“;”和Excel采用PC的区域设置。 我可以做什么来编码以通过“;”进行分离? 谢谢!

<?php

// call export function
exportMysqlToCsv('export_csv.csv');


// export csv
function exportMysqlToCsv($filename = 'export_csv.csv')
{

   $conn = dbConnection();
// Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }
    $sql_query = "SELECT id, firstname, lastname FROM MyGuests";

    // Gets the data from the database
    $result = $conn->query($sql_query);

    $f = fopen('php://temp', 'wt');
    $first = true;
    while ($row = $result->fetch_assoc()) {
        if ($first) {
            fputcsv($f, array_keys($row));
            $first = false;
        }
        fputcsv($f, $row);
    } // end while

    $conn->close();

    $size = ftell($f);
    rewind($f);

    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Content-Length: $size");
    // Output to browser with appropriate mime type, you choose ;)
    header("Content-type: text/x-csv");
    header("Content-type: text/csv");
    header("Content-type: application/csv");
    header("Content-Disposition: attachment; filename=$filename");
    fpassthru($f);
    exit;

}

// db connection function
function dbConnection(){
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "myDB";
    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    return $conn;
}


?>

1 个答案:

答案 0 :(得分:2)

您必须使用如下所示,您可以参考put comma as separator in export to CSV in php了解更多信息。

$delimiter = ',';
$enclosure = '"';

$f = fopen('php://temp', 'wt');
$first = true;
while ($row = $result->fetch_assoc()) {
    fputcsv($f, $row, $delimiter, $enclosure);
}