我正在创建一个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文件。但我的数据确实有空格。所以我很喜欢
实际上,名称是'测试智能代码'。我希望在一个列上。我们怎么做?
答案 0 :(得分:2)
尝试将commo(,)放在下面
$csv_output .=$key['user_id'].",".$key['email'].",".$key['displayname'];
答案 1 :(得分:1)
实际上,CSV
是Comma 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']."\"";