3

これは本当に単純なはずです...こことphp.netの例に従って、mysqlクエリからレコードを取得し、それらをcsv形式に変換して、作成したプログラムで使用するためにこのデータを変数に割り当てようとしています。 。一時ファイルを作成せずにこれを実現したいと思います。

  public function export3() {
      $order_data = array();
      $order_data[] = array(
        'order_id',
        'email',
        'telephone',
        'shipping_address',
        'payment_address',
        'comment'
    );


    // Mysql returns data and is assigned to this array in the following format

    $order_data[] = array(
        '1',
        'blank@blank',
        '123456789',
        '123 Lane',
        '123 Lane',
        'no comment'
    );



    $order_data[] = array(
        '2',
        'blank3@blank3',
        '987654321',
        '321 Lane',
        '321 Lane',
        'no comment'
    );

    $outstream = fopen("php://temp", 'r+');

    foreach($order_data as $csv_data) {
        fputcsv($outstream, $csv_data);
    }

    rewind($outstream);
    $export_data = fgets($outstream);
    fclose($outstream);

    $response->output($export_data);

}

残念ながら、「配列から文字列へ」の変換について不満を言うことがありますが、エラーがなくても、最初の配列(csv形式)のみを取得し、他の配列は取得しません。助言がありますか?ありがとうございました

4

1 に答える 1

4

stream_get_contents()の代わりに使用しfgets()ます。後者は1行しかフェッチしないためです。

$export_data = stream_get_contents($outstream);
于 2011-08-18T17:43:53.947 に答える