PHP:如果数据文本包含“csv”,则创建csv文件&引用;数据将被拆分为多个部分并放在其他列中?
我在创建csv文件时遇到问题,因为如果我的数据包含PHP:如果数据文本包含“csv”,则创建csv文件&引用;数据将被拆分为多个部分并放在其他列中?,php,csv,Php,Csv,我在创建csv文件时遇到问题,因为如果我的数据包含,,它将被拆分为多个部分,并放在其他列中,从而破坏我的csv文件 以下是示例输出: 正如您在标题栏中看到的,第一行应该有以下数据“Acer Aspire AS5250-0639 15.5”笔记本电脑(1.65 GHz AMD双核处理器E-450、4 GB RAM、500 GB硬盘驱动器、DVD+/-RW光驱、Windows 7 Home Premium 64位)“从4 GB RAM开始它被拆分并放在其他列中,因为在它之前有,等等 现在,这里是我
,
,它将被拆分为多个部分,并放在其他列中,从而破坏我的csv文件
以下是示例输出:
正如您在标题
栏中看到的,第一行应该有以下数据“Acer Aspire AS5250-0639 15.5”笔记本电脑(1.65 GHz AMD双核处理器E-450、4 GB RAM、500 GB硬盘驱动器、DVD+/-RW光驱、Windows 7 Home Premium 64位)“
从4 GB RAM开始
它被拆分并放在其他列中,因为在它之前有,
等等
现在,这里是我的PHP脚本:
<?php
include 'database.php';
$db = new database();
$data = $db->exportdatabase();
$out = '';
$out .= 'GSEQ,BRAND,TITLE,SIMAGE,SPRICE,WEIG,DIMENSIONS,ASIN,CATEGORYNAME,MODELNO';
$out .="\n";
foreach($data as $items){
$out .=' '.$items['GSEQ'].', '.$items['BRAND'].', '.$items['TITLE'].', '.$items['SIMAGE'].', '.$items['SPRICE'].', '.$items['WEIG'].', '.$items['DIMENSIONS'].'
'.$items['ASIN'].', '.$items['CATEGORYNAME'].', '.$items['MODELNO'].'
';
$out .="\n";
//var_dump($items);
}
header('Content-Description: File Transfer');
header("Content-Type: application/csv") ;
header("Content-Disposition: attachment; filename=Data.csv");
header("Expires: 0");
echo $out;
exit;
?>
我怎样才能解决这个问题呢?对于初学者,我会停止尝试自己做一些PHP可以为您做的事情。使用fputcsv而不是自己执行:。此方法还处理转义分隔符(逗号)
除此之外。。不要使用“,”作为csv分隔符。您最好使用“|”作为单独的字符,因为该字符不太常见。对于初学者,我将不再尝试自己做PHP可以为您做的事情。使用fputcsv而不是自己执行:。此方法还处理转义分隔符(逗号)
除此之外。。不要使用“,”作为csv分隔符。您最好使用“|”作为分隔符,因为该字符不太常见。一种方法是使用引号(“)将每个字段括起来
另一种方法是使用str_replace用另一个字符替换麻烦的“,”。一种方法是使用引号(“)包装每个字段
另一种方法是使用str_replace将麻烦的“,”替换为另一个字符。如果你投了minvote的票,至少有礼貌地在评论中解释原因。据我所知,我的答案完美地处理了逗号问题。我试图将分隔符改为“|”,但输出变得最糟糕:\@MekeniKine-请更具体一点,当你陈述问题时,“输出变得更糟”实际上是什么意思?您的输出是什么样子的?如果您将分隔符更改为“|”,您还必须在尝试加载文件的应用程序中更改分隔符。例如,如果你在Excel中打开文件,你还必须告诉Excel使用|作为列分隔符。仍然觉得你应该使用fputcsv,但我添加了另一个答案,也应该解决你的问题,尽管这是一个更难看的方法。如果你minvote,至少有礼貌在评论中解释为什么。据我所知,我的答案完美地处理了逗号问题。我试图将分隔符改为“|”,但输出变得最糟糕:\@MekeniKine-请更具体一点,当你陈述问题时,“输出变得更糟”实际上是什么意思?您的输出是什么样子的?如果您将分隔符更改为“|”,您还必须在尝试加载文件的应用程序中更改分隔符。例如,如果您在Excel中打开文件,您还必须告诉Excel使用|作为列分隔符。仍然认为您应该使用fputcsv,但我添加了另一个答案,该答案也可以解决您的问题,尽管这是一个更难看的方法。