导出到csv,其中包含/逗号的字符串,将其拆分

时间:2010-06-12 19:51:43

标签: php csv export data-integrity

此代码将数据导出到csv文件中,该文件在Excel中打开。

当字符串中包含逗号时,它会混淆数据的顺序。

我需要帮助修改下面的代码以解决其中包含逗号的任何字符串,以便在字符串之后不创建新列。

我假设它会在双引号内传递每个字符串或包含字符串的内容,因此这些引号中的任何逗号都会产生异常。

感谢任何帮助。

$result = mysql_query("select lname, fname, email, dtelephone, etelephone, contactwhen, comments, thursday, 
friday, saturday, sunday, monday FROM volunteers_2010");

$csv_output .= "Last Name,First Name,Email,Telephone (Day),Telephone (Evening),Contact When,Comments,Thursday,Friday,Saturday,Sunday,Monday,Comments\n";

$i = 0;
if (mysql_num_rows($result) > 0) {
 while ($row = mysql_fetch_assoc($result)) {
  $csv_output .= $row['Field'].", ";
  $i++;
 }
}
$csv_output .= "\n";

$values = mysql_query("SELECT lname, fname, email, dtelephone, etelephone, contactwhen, comments, thursday, 
friday, saturday, sunday, monday FROM volunteers_2010 WHERE venue_id = $venue_id");

while ($rowr = mysql_fetch_row($values)) {
 for ($j=0;$j<$i;$j++) {
  $csv_output .= $rowr[$j].", ";
 }
 $csv_output .= "\n";
}

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:3)

see article in wikipedia

包含逗号的字段必须包含在双引号字符

答案 2 :(得分:2)

正确的格式:“测试”,“测试”,“使用双”“里面的引号”

第一圈:

$csv_output .= '"' . str_replace('"', '""', $rowr['Field']) . '", ';

第二循环:

$csv_output .= '"' . str_replace('"', '""', $rowr[$j]) . '", ';