0

以下のように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ファイルを取得しています。しかし、名前のデータには空白があります。だから私はo/pのようになります

ここに画像の説明を入力してください

実際、名前は「テストスマートコード」です。これを1つの列に配置したいと思います。どうすればそれができますか?

4

3 に答える 3

2

以下のようにコモ(、)を入れてみてください

$csv_output .=$key['user_id'].",".$key['email'].",".$key['displayname'];
于 2012-12-26T12:32:37.853 に答える
1

実はCSVですComma Separated File。ファイルの書き込みには、fputcsvを使用できます

直接出力したい場合は、以下を使用してください。

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

echo $csv;
于 2012-12-26T12:31:56.433 に答える
1

列には他のセパレーターを使用できます。ここでスペースを使用してから、Excelですべてのテキストをスペースで区切ります。

テキストを引用符で囲むと、Excelで1つのフィールドとして解析できます。

たとえば、これを試してください:

$csv_output .= "\"".$key['user_id']."\" \"".$key['email']."\" \"".$key['displayname']."\"";
于 2012-12-26T12:37:52.927 に答える