ファイルの行を指定してデータを取得する方法 - PHPプロ!Q&A掲示板

133

  • 200P

ファイルの行を指定してデータを取得する方法

質問日時 / 2006年8月9日 18:16    回答数 / 5件

Questioner:  shigechy  このエントリーをはてなブックマークに追加 

キーワード / ファイル    行指定   

初歩的な質問とは思いますが、よろしくお願いします。

ファイルからデータを取得するときに、行を指定して取得する方法を教えてください。
例えば、1~10行目、3行目のデータを取得したい場合どのようにすればよいのでしょうか?

以下↓のように、全部のデータを取得する方法はできたのですが、行を指定する方法が思いつきません。。

$filename = "../../data.csv";
$handle = fopen($filename, "r");

while($contents = fgetcsv($handle, 100)) {
foreach ($contents as $key => $value) {
  print($value . "<br>\n");
  }
}
fclose($handle);

何か良い方法があれば教えて下さい。
よろしくお願いします。

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┣A01wakabadou少々ダーティな実装になりますが、制御用のカウンタ変
┃┗A01-1shigechyご回答ありがとうございます。 一度、実際にコード
┣A02adAtype_kyouta初めまして、佐藤と申します。 コードの簡潔さを重
┃┗A02-1shigechyご回答ありがとうございます。 配列に格納するとい
┗A03wakabadou解決済みのものに追記するのは気が引けるのですが、気

回答一覧

並び替え:

A01
answererwakabadou [8月9日 18:45]

少々ダーティな実装になりますが、制御用のカウンタ変数を用意して
 取得したい行以前の場合はcontinue。
 取得したい行の間はデータを取得。
 取得したい行が終わったらbreakする。
などはいかがでしょうか?

この意見に回答する

ツリーへ TOPへ

A01-1
replyershigechy [8月11日 20:27]

ご回答ありがとうございます。

一度、実際にコードを書いて試してみます。

ありがとうございました。

この意見に回答する

ツリーへ TOPへ

A02 満足
answereradAtype_kyouta [8月9日 21:03]

初めまして、佐藤と申します。

コードの簡潔さを重視し、10行から構成されるファイルの3行目を取得する場合・・・

----------------------------------------------------------------------

  //ファイルの内容を一行一要素で配列に格納
  $fileVar = file ( ' ../../data.csv ' ) ;

  //該当行
  $targetVar = $fileVar[3] ;                

----------------------------------------------------------------------

こんなのどうでしょう。

この意見に回答する

ツリーへ TOPへ

A02-1
replyershigechy [8月11日 20:29]

ご回答ありがとうございます。

配列に格納するという方法もあるんですね。
シンプルな方法で参考にさせていただきます。

どうもありがとうございました。

この意見に回答する

ツリーへ TOPへ

A03
answererwakabadou [8月11日 23:35]

解決済みのものに追記するのは気が引けるのですが、気になったので1件だけ。

fgetcsvfileとだと、値の中に改行があるCSVファイルを読んだ時に結果が変わります。
例えば

"改

した1行目", "asdf", "qwer"
"2行目", "asdf", "qwer"
"3行目", "asdf", "qwer"

など。

これをtest.csvとして保存したとして、
fgetcsv('test.csv', filesize('test.csv'))で読んだ場合、3行を取得する事になり
file('test.csv')で読んだ場合、5行を取得する事になります。

値の中に改行が含まれないのならば、fileを使うのがお勧めですが念のため。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
セッションがいいのか、それともデータベースがいいのか教えて下さい。
 このエントリーをはてなブックマークに追加 
A
>ボタンをクリックしたら選んだ商品情報を持っておきたいと思っています。 そのくらいのことならセッションもしくはCookie(期限短め:場合によってはブラウザ閉じるまで)でいいんじゃないですかね。 #わ...

>>続きを読む

一つの目安として、ECサイトの購入情報など絶対に消えてはいけないものはDBに、カートなどの一時的に使用する情報や、ユーザに任意のタイミングで消去されても構わないものはセッションにと使い分けるといいでしょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)