PHPにてCSVを生成して、ダウンロードするプログラムを書いていたのですが、
何故か1行目に改行がはいる状態。
調べてみると、スクリプトの最後 ?>のあとに改行があると出力されるとか。
しかし、スクリプトのあとに改行はない。
生成したCSVファイルを一度ファイルとして保存してみると、改行がない。
生成したCSVファイルをreadfileで読み込み出力すると改行がはいる。
PHPにてCSVを生成して、ダウンロードするプログラムを書いていたのですが、
何故か1行目に改行がはいる状態。
調べてみると、スクリプトの最後 ?>のあとに改行があると出力されるとか。
しかし、スクリプトのあとに改行はない。
生成したCSVファイルを一度ファイルとして保存してみると、改行がない。
生成したCSVファイルをreadfileで読み込み出力すると改行がはいる。
結構前の話なんですが、PHP5.0.4でとあるシステムを構築していました。
開発初期の段階では最新版でした。
仮納品したあと、とある問題が発生しました。
データベースのレコード数が増えてきたため、データをエクスポートするのに失敗している現象が発生。
エクスポートにはCSV形式とExcel形式での出力に対応していたのですが、なぜか2MBちょうどしかダウンロードされないのです。
プログラムの見直し、Apache、PHP、通信経路などさまざまな要因を探りました。
かなり悩んでいましたが、原因は意外なところにありました。
PHPのバージョンです。
そのときには、5.1.6が最新でした。
どうも、5.0.4だと上記のような現象が発生するらしく、バージョンアップすることで解決しました。
定期的なバージョンアップって必要なんですね。