エラーメッセージ
PHP
1stream_filter_append(): unable to create or locate filter "convert.mbstring.encoding.UTF-8:sjis-win"
PHPでCSV出力するために文字コードを変換しています。
UTF8→sjis-win
エラーメッセージから文字コードの検索ができていないようなんですが、書き方が間違っているのでしょうか?
こちらを参考に実装いたしました。
###コード全文
PHP
1if($this->request->query('csv') === 'true'){ 2 3 //ビューを使わない 4 $this->autoRender = false; 5 6 //Content-Typeを指定 7 $this->response->type('csv'); 8 9 //download()内ではheader("Content-Disposition: attachment; filename=hoge.csv")を行っている 10 $this->response->download("テスト.csv"); 11 12 $fp = fopen('php://output','w'); 13 //$fp = fopen('php://temp/maxmemory:'.(5*1024*1024),'a'); 14 15 //CSVをエクセルで開くことを想定して文字コードをSJISへ変換する設定を行う 16 $filter_name = 'convert.mbstring.encoding.UTF-8:SJIS-win'; 17 stream_filter_append($fp, $filter_name, STREAM_FILTER_WRITE); 18 19 foreach ($query as $row) { 20 $csvArray[] = [ 21 $row->id, 22 $row->author, 23 $row->datetime, 24 $row->status, 25 ]; 26 } 27 28 foreach($csvArray as $key => $value){ 29 fputcsv($fp, $value); 30 } 31 32 fclose($fp); 33 }
回答1件
あなたの回答
tips
プレビュー