Php CSV fputcsv分隔符“&引用&引用&引用;使用台式机和移动设备

Php CSV fputcsv分隔符“&引用&引用&引用;使用台式机和移动设备,php,excel,csv,mobile,desktop,Php,Excel,Csv,Mobile,Desktop,当我打开用分隔符“”创建的文件时,计算机上的所有内容都写在一个单元格中 但当我使用“;”分隔符时,一切都很好 而手机则是另一回事,它的工作原理正好相反,当我使用delimiter时,“一切正常,但当我使用”;“所有内容都写在一个单元格中,当我使用delimiter时,计算机上是如何工作的?”。如何使它在两种设备上都工作 function array2csv(array &$array, array $arr1) { if (count($array) == 0) {

当我打开用分隔符“”创建的文件时,计算机上的所有内容都写在一个单元格中

但当我使用“;”分隔符时,一切都很好

而手机则是另一回事,它的工作原理正好相反,当我使用delimiter时,“一切正常,但当我使用”;“所有内容都写在一个单元格中,当我使用delimiter时,计算机上是如何工作的?”。如何使它在两种设备上都工作

function array2csv(array &$array, array $arr1)
{
    if (count($array) == 0) {
        return null;
    }
    ob_start();
    $df = fopen("php://output", 'w');
    fputcsv($df, array_keys(reset($array)), ';');
//    fputcsv($df, $arr1, ';');

    foreach ($array as $row) {
        fputcsv($df, $row, ';');
    }
    fclose($df);
    return ob_get_clean();
}

function download_send_headers($filename)
{
    // disable caching
    $now = gmdate("D, d M Y H:i:s");
    header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
    header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate");
    header("Last-Modified: {$now} GMT");

    // force download
    header("Content-Type: application/force-download");
    header("Content-Type: application/octet-stream");
    header("Content-Type: application/download");

    // disposition / encoding on response body
    header("Content-Disposition: attachment;filename={$filename}");
    header("Content-Transfer-Encoding: binary");
}

download_send_headers($_POST['user_id'] . '-(' . date("Y-m-d") . ')-olimob' . ".csv");
echo array2csv($array, $arr1);
die();

除非您可以更改区域设置,否则无法在MS Excel中配置它。。。这就是决定是
还是
用作csv文件的分隔符

但是,您可以做的是创建第一行

sep=;

然后使用
分隔符和MS Excel的现代版本将正确读取文件,而不考虑区域设置

这是一种软件(Excel、OpenOffice Calc等)配置。好的,但如何解决此问题?我可以在正常显示的两台设备上执行类似操作吗?您的文件是否具有
.csv
扩展名?MS Excel可以猜测,但它在检测文件格式化所用的数据方面并不完美。请确保下载\u发送\u标题($\u POST['user\u id'].-('.date(“Y-m-d”).-olimob'.csv”);这里创建了一个格式为.csvYes的文件,这似乎是一个客户端(MS Excel)配置问题。根据您的PHP代码,正确生成了CSV文件。创建sep=;,的第一行意味着什么?当我在手机上使用这样的分隔符时,它是不起作用的