ゲーム・論考いろいろあったのだけど、ようするに使えないということがわかった......。忘れないように書いとく。PHPにfgetcsv()という便利関数があって。ファイルをCSVとして一行とりだして、各列の値を配列に入れて返すというものなんだが。PHP4のはじめのころは、バグだらけなので有名だったらしいのだけど、さすがにPHP5.2なら大丈夫だろうと思ったら。マルチバイト文字の2バイト目に'\'があると、直後のダブルクォーテーションをエスケープするという、少なくともEXCELの仕様にはない独自解釈をするらしく。SJISのファイルを読ませるとうまくいかない。(ただし、EXCELがCSVをどう解釈するかという仕様は公開されてなさげ)じゃあEUCに変換してから読ませれば、いちおうは大丈夫なんだけど、もちろん機種依存文字が化ける。←(これは指摘されたのでいちおう修正。SJIS-winからEUCJP-winとかUTF-8とかに変換すれば使える。めどい)だいだいCSVを使うときというのはEXCELからくるデータなわけで。文字コードはSJISだし、機種依存文字も使いまくりがあたりまえだ。それがいけないのではあるけど、しかし対応するしかないし。しても使うなら、あらかじめ機種依存文字を安全な文字列に変換して、EUCにして保存し、そのあとでファイルを開いてfgetcsv()するとか?(やる気にならないから試してない)もちろん、そんなことするなら自分で処理を書いたほうがいい。←(これもSJIS-winとか指定すれば特別な変換はいらない)というわけで。いうわけで、できるだけExcelの動きに近づけてみた関数を作ってみたんだ。調べてみると、セル中でダブルクォートが出てきたときとか、あんたほんとにそれでいいのかと思う動きをするけど、あくまでそんなExcelを再現しようとしてみる。$cols;}つまりなにがいいたいかというと、セル頭のダブルクォートでダブルクォートの中に入る。その後どこでもいいからダブルクォートが登場すると、抜けてしまう。ダブルクォート2個のときは例外として、ダブルクォート1個に変換。:CSVファイルをSJIS-winからUTF-8に変換してから、fgetcsv()を使用し、UTF-8からSJIS-winに戻せば機種依存文字等も壊れないけどね。※SJIS→EUCだと壊れる。けっきょく、それでもExcelと動作が違っていると、いつか不具合といわれても不思議はないのが現実なんですよねえ。:というわけで、まあ指摘いただいたのでいちおう上の内容を修正しときます。セル内に改行がある場合に対応してるけど...。:対応してるはずです。やってみてうまくいかなかったら、なおすなりなおせというなりしてください。18:16わかりやすいソースですね。このソース(fgetExcelCSV)のライセンスを教えてください。サイトで使わせていただきたいと思っています。19:16......考えてもいなかったです。なにをどうされてもかまわないです。NYSL0.9982にしたがいます、ということでおねがいします。09:59ありがとうございます。使わせていただきます。このページに救われました!fgetExcelCSV使わせて頂きます。16:07いやその、読んでいただいたのは嬉しいですが。これはもう何年も前に書いたもので、しかも半分冗談の書き殴りコードです。使用はおすすめしません。新しくていいものがあるので、そちらを探してください。fgetcsv()は使うなを。