我们如何在PHP生成的CSV文件上添加空格?

时间:2012-12-26 12:29:36

标签: php mysql csv

我正在创建一个csv文件,如下所示

   $user_rep=Engine_Db_Table::getDefaultAdapter()->select()
                  ->from('engine4_users',array('user_id','email','displayname'))
                 ->query()->fetchAll();

   $csv_output .= "UserId Email Name"; 
    $csv_output .= "\n"; 

    foreach($user_rep as $key)
    {
        $csv_output .=$key['user_id']." ".$key['email']." ".$key['displayname'];
        $csv_output .= "\n"; 
    }


$filename = $file."_".date("d-m-Y_H-i",time()); // il nome del file sara' composto da quello scelto all'inizio e la data ed ora oggi

 header("Content-type: application/vnd.ms-excel");
 header("Content-disposition: csv" . date("Y-m-d") . ".csv");
 header( "Content-disposition: filename=".$filename.".csv");
 print $csv_output;
exit; 

我正在获取csv文件。但我的数据确实有空格。所以我很喜欢

enter image description here

实际上,名称是'测试智能代码'。我希望在一个列上。我们怎么做?

3 个答案:

答案 0 :(得分:2)

尝试将commo(,)放在下面

$csv_output .=$key['user_id'].",".$key['email'].",".$key['displayname'];

答案 1 :(得分:1)

实际上,CSVComma Separated File。对于书写文件,您可以使用fputcsv

如果您想直接输出,请使用:

$buffer = fopen('php://temp', 'r+');
fputcsv($buffer, $user_rep);
rewind($buffer);
$csv = fgets($buffer);
fclose($buffer);

echo $csv;

答案 2 :(得分:1)

您可以为列使用其他分隔符。 现在您使用空格,然后Excel按空格分隔所有文本。

您可以在引号中包含文本,然后Excel可以将其解析为一个字段。

例如试试这个:

$csv_output .= "\"".$key['user_id']."\" \"".$key['email']."\" \"".$key['displayname']."\"";