Php CSV fputcsv分隔符“&引用&引用&引用;使用台式机和移动设备
当我打开用分隔符“”创建的文件时,计算机上的所有内容都写在一个单元格中 但当我使用“;”分隔符时,一切都很好 而手机则是另一回事,它的工作原理正好相反,当我使用delimiter时,“一切正常,但当我使用”;“所有内容都写在一个单元格中,当我使用delimiter时,计算机上是如何工作的?”。如何使它在两种设备上都工作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) {
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=;,的第一行意味着什么?当我在手机上使用这样的分隔符时,它是不起作用的