- ベストアンサー
PHPで一行のバイト数を取得するためには
今、PHPでプログラムを組んでいるのですが、 CSVに落としたファイルを読み込んで、 そこからテーブルを作るつもりです。 はじめはfgetcsvで全ての値をとってこようと思っていたのですが、こちらの関数はあまり使わないほうがよいと書いてあったので、 一行ずつ読み込ませる fgetsを使用するつもりですが、 バイト数を指定しなければいけないため、できれば一行のバイト数を取得したいと思っています。 他のプログラムを見たときは固定でとっていましたが、 何かよい関数があれば、ご教授お願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2です。 仕様が変更されてたんですね。 先のこと考えると、使わないほうがいいのかもね。 で、fgetsだけど、 バイト数の指定は必須ではないと思われ。 あと、文字列の分割にはexplodeって関数使えばよいかと。
その他の回答 (2)
- GuruGuru22
- ベストアンサー率51% (177/346)
fgetcsvはなぜダメなの? fgetcsvも一行ずつ読み込むと思うんだけど。
お礼
ありがとうございます!!
補足
http://ns1.php.gr.jp/pipermail/php-dev/2004-January/000968.html 上記のURLになるべく避けておいたほうがよいとかかれてありました。 私はPHPを始めたばかりなので、わからない点が多いと思います。 ご指摘をいただけたらありがたいと思っております。
- sisya
- ベストアンサー率39% (97/244)
fgetcsvをご使用なさっていた所から 一括ですべて読み込んでも構わないようにお見受けしましたので、 「file関数」を使ってみてはいかがでしょうか? これでしたら特に文字数を考慮する事無く読み込めますよ。 例) $Data = file([ファイル名]); foreach($Data as $Value){ $Record = explode(",", $Value); # 個別の処理… }
お礼
ありがとうございます!!
補足
この場合ですと、 例えば、 フィールド1,フィールド2,フィールド3 あじ、鶏肉、いんげん いわし、豚肉、きゅうり などのファイルを読み込ませたとき $Recordには行を無視して入ってしまいますよね~。 できれば2次元配列のように列と行の情報をもちたいのでうすが、、、
お礼
ありがとうございます。 参考にさせていただきます。