• ベストアンサー

PHPで一行のバイト数を取得するためには

今、PHPでプログラムを組んでいるのですが、 CSVに落としたファイルを読み込んで、 そこからテーブルを作るつもりです。 はじめはfgetcsvで全ての値をとってこようと思っていたのですが、こちらの関数はあまり使わないほうがよいと書いてあったので、 一行ずつ読み込ませる fgetsを使用するつもりですが、 バイト数を指定しなければいけないため、できれば一行のバイト数を取得したいと思っています。 他のプログラムを見たときは固定でとっていましたが、 何かよい関数があれば、ご教授お願いいたします。

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

  • ベストアンサー
回答No.3

#2です。 仕様が変更されてたんですね。 先のこと考えると、使わないほうがいいのかもね。 で、fgetsだけど、 バイト数の指定は必須ではないと思われ。 あと、文字列の分割にはexplodeって関数使えばよいかと。

aiurai54
質問者

お礼

ありがとうございます。 参考にさせていただきます。

その他の回答 (2)

回答No.2

fgetcsvはなぜダメなの? fgetcsvも一行ずつ読み込むと思うんだけど。

参考URL:
http://search.net-newbie.com/php/function.fgetcsv.html
aiurai54
質問者

お礼

ありがとうございます!!

aiurai54
質問者

補足

http://ns1.php.gr.jp/pipermail/php-dev/2004-January/000968.html 上記のURLになるべく避けておいたほうがよいとかかれてありました。 私はPHPを始めたばかりなので、わからない点が多いと思います。 ご指摘をいただけたらありがたいと思っております。

  • sisya
  • ベストアンサー率39% (97/244)
回答No.1

fgetcsvをご使用なさっていた所から 一括ですべて読み込んでも構わないようにお見受けしましたので、 「file関数」を使ってみてはいかがでしょうか? これでしたら特に文字数を考慮する事無く読み込めますよ。 例) $Data = file([ファイル名]); foreach($Data as $Value){ $Record = explode(",", $Value); # 個別の処理… }

aiurai54
質問者

お礼

ありがとうございます!!

aiurai54
質問者

補足

この場合ですと、 例えば、 フィールド1,フィールド2,フィールド3 あじ、鶏肉、いんげん いわし、豚肉、きゅうり などのファイルを読み込ませたとき $Recordには行を無視して入ってしまいますよね~。 できれば2次元配列のように列と行の情報をもちたいのでうすが、、、

関連するQ&A