cakephp2とPlugin/FastCSVを利用して固定長データを出力する

みなさんお元気?トクハラです。
ちょっと体調を崩してますが生きてます。
でも仕事はしてますんでご安心を。

ということで本題。

いつもはcsvを出力するときはfastcsvを利用させてもらってる。
ありがとうございます。

全銀データを出力する仕事をやってます。
全銀といってもCSVから固定長まで色々ある。
今回は固定長のデータだった。

fastcsvは内部でfputcsvを使っている。
だとどうしてもデリミタだなんだという制約から逃れられない。

以下のようにして解決しました。
まずFastCSVのfunction export()の中を変更。

//2行追加(CRLFです。LFの場合は\nだけにしてね)
$row .= "\r\n";
fwrite($this->handle, $row);
//コメントアウト
//fputcsv($this->handle, $row, $this->delimiter, $this->enclosure);

 

あとはviewでゴリゴリとフォーマット通りに書いていく。
csvの場合はarray_pushだけど、固定長なので1行終わるまでは
ひたすら文字列追加です。
こんな感じ。

//振込依頼人名(環境設定「振込依頼人名」から取得 合計40)
$dummy = '';;
for($i = 0; $i < 40; $i ++ ){
$dummy = $dummy . ' ';
}
$accountName = mb_substr(($accountName . $dummy), 0, 40, 'UTF-8');

 

もしこのページのアクセスが伸びたらviewだけでも貼り付けようと思います。
ではまた。

Leave a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です