Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 导出到csv,字符串中包含逗号,将其拆分_Php_Csv_Export_Data Integrity - Fatal编程技术网

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

Php 导出到csv,字符串中包含逗号,将其拆分,php,csv,export,data-integrity,Php,Csv,Export,Data Integrity,此代码将数据导出到csv文件中,该文件在Excel中打开 当字符串中有逗号时,它会打乱数据的顺序 我需要帮助修改下面的代码,以解析其中包含逗号的任何字符串,并在该字符串之后再创建新列 我假设它将在双引号内传递每个字符串或包含该字符串的内容,因此这些引号内的任何逗号都会产生异常 感谢您的帮助 $result = mysql_query("select lname, fname, email, dtelephone, etelephone, contactwhen, comments, thursd

此代码将数据导出到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";
}
$result=mysql\u query(“选择lname、fname、email、dtelephone、etelephone、contactwhen、comments、星期四、,
星期五、星期六、星期日、星期一,来自志愿者协会(2010年);
$csv_输出=“姓氏、名字、电子邮件、电话(白天)、电话(晚上)、联系时间、评论、周四、周五、周六、周日、周一、评论\n”;
$i=0;
如果(mysql_num_rows($result)>0){
while($row=mysql\u fetch\u assoc($result)){
$csv_输出=$row['Field']。“,”;
$i++;
}
}
$csv_输出=“\n”;
$values=mysql\u查询(“选择lname、fname、email、dtelephone、etelephone、contactwhen、comments、星期四、,
星期五、星期六、星期日、星期一来自志愿者_2010,其中地点_id=$vention_id”);
while($rowr=mysql\u fetch\u row($values)){
对于($j=0;$j

嵌入逗号的字段必须用双引号字符括起来,格式正确:“test”、“test”、“use double”“inside”

第一圈:

$csv_output .= '"' . str_replace('"', '""', $rowr['Field']) . '", ';
第二圈:

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

+1-不要重新发明轮子,csv是一种定义良好的格式,有许多正确的实现。不,它不是“定义良好”,因为各种应用程序的格式各不相同,但大多数csv程序都遵循以下几种常见模式:-)一个不一致的例子是Microsoft Excel,至少在瑞典语言环境中,它使用分号分隔字段(!)。尽管如此,仍然+1表示没有重新设计轮子。因此它应该看起来像:fputcsv(拆分(',',$row['Field']);和fputcsv(拆分(',',$rowr[$j]);这样做了$csv_输出。=''.$row['Field'.',',';和$csv_输出。='“.$rowr[$j].”,”;