• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:php4、php5によるimplode()、file()の動作の違い?)

php4、php5によるimplode()、file()の動作の違い

このQ&Aのポイント
  • php4とphp5でのimplode()とfile()の動作にはいくつかの違いがあります。
  • php5では、ファイルの内容が で区切られた場合でも正しく配列に変換されますが、php4ではそうではありません。
  • php4とphp5で同じ動作をするには、implode('###', file())のように区切り文字を指定する方法があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.1

php4と5で動作が違うようなソースとは思えないけど、foreach で表示している変数名が違うので、ちゃんとデータの確認が出来てるのか疑問ですけど。 わざわさくっつけて分解するより mb_convert_variables() (php4.0.6以降)で配列のまま変換した方がいいと思う。内部では、implode,explodeを行っていますので同じことですが。 $RowData = file($csv,FILE_SKIP_EMPTY_LINES); mb_convert_variables("UTF-8", "SJIS", $RowData ) ; var_dump($RowData ); それから、デバッグ中は、エラー出力するようにした方がよいです、本当の問題が@により隠蔽されてるかもしれません。

rqg2010
質問者

お礼

hrm_mmmさん、お早うございます。レスありがとうござ益す。 >php4と5で動作が違うようなソースとは思えないけど そうですか。 >mb_convert_variables() このような関数が合ったのですね。 知らなかったものですからimplode,explodeを行いました。 早速試してみます。 でも、php4のサーバは、職場からでないとアクセスできません。 今日明日は、休みなので月曜に早速アップして試してみます。 結果ご報告させていただきます。 ありがとうございました。

rqg2010
質問者

補足

hrm_mmmさん、今日は。 できました。 >$RowData = file($csv,FILE_SKIP_EMPTY_LINES); >mb_convert_variables("UTF-8", "SJIS", $RowData ) ; と、したところ、PHP4、5でダンプにも差がなくなりました。 どうもありがとうございました。

関連するQ&A