ファイルからデータの読み出し

ファイルからデータを読み出す関数
file
これを使って変数に代入するには
$read_test = @file("test.txt");
のようにする。(@についてはPHPの基本(何らかの言語経験者向け)を参照)
fileはファイル内のデータを1行ずつ変数に入れてくれる。 通常はいくつものデータをファイルに入れているので各データが配列に入る。
データを書き込む時にデータとデータの間に改行や空白、tabなどを入れる(区切らないとデータ自身がつながるので意味不明になる)ので、
○○○○\n
○○○○\n
こんな感じ。
\nは改行。
例えば、変数に入れたいデータをテキストファイルに
kyou\n
ashita\n
のように書く。
これが$read_test内に順に入っていく。
ただこれでは改行も含まれるのでとりあえず取ってしまう。
データから空白を取り除く関数は
rtrim
これで変数をひとつずつ空白を取り除きながら配列にいれていく。ちなみに改行(\n)も空白とみなされる。
for($i=0; $i<10; $i++){
$read_test[$i]=rtrim($read_test[$i]);
}
$i<10; としているのは「iが10以下である間」と行数が分かっている場合で、
データの追記で行数が不明な場合は
count
という関数を使って予め行数を調べておく。
つまり、
$number = count($read_test);
のようにすれば
test.txtに書かれたデータの行数が分かる。
なので、10としていたところに$numberとすれば「iが行数以下である間」繰り返し処理を行う。
ここまでをまとめると、

<?php
$read_test = @file("test.txt");
$number = count($read_test);
for($i=0; $i<$number; $i++){
 $read_test[$i]=rtrim($read_test[$i]);
 print ($read_test[$i] . "<br>");
}
?>

これでデータを順に全て配列に格納できる。
上のソースをコピペしたファイルtest.phpと何行か書いたtest.txtを用意して実行させると、 printで1行ごとに出力しているので確認してほしい。
forの判定部分に直接$i<count($read_test);と書くことも出来るが、
行数の値が変わらない以上、変数に入れておく方が軽くなる。
他の判定でも行数を使う事があればなおさら。

このページは
データの書き込みのページ
と対になっているので、そちらも参考にする事で理解が深まる。



サンプル

著作権について
ファイルからデータの読み込み
ファイルへのデータの書き込み
フォルダ内のファイル名取得
アクセスカウンターの作り方
アンケートの作り方
フォームからのデータの取得
フォーム以外のページからのデータの取得
ファイル内、文章内の文字列の検索
パスワード認証の方法と作り方

0から始めるPHP

PHPのすすめ(これ飛ばしてもいい)
必要な環境とPHPへのアクセス
開発に使うもの
初めての方への注意点
PHPの基本(何らかの言語経験者向け)
PHPの基本(初めての人向け)
書き方
ファイルの読み込み

プログラミング講座
文字などの出力
PHPにおける変数
ifによる条件比較
forによる繰り返し処理
PHPにおける配列
これまでとこれからの学び方

PHPの使える
おすすめレンタルサーバー

スタードメイン

レンタルサーバーの選び方


その他

プログラミングのコツ
プログラマーと年齢
誰でも簡単にできるサーバー負荷対策
社内や自宅サーバーのグローバルIPアドレスが変わってもアクセスできるようにする

日記

2014年
日本語形態素データとキーワード出現回数
Androidベースのゲーム機に期待
4月末に判明したIEの脆弱性について
フラッシュプレーヤーの製作
ホームページとウェブサイトの違い
WIFIなどの用語は正しく使いたい
国産ゲーム会社のサイトについて
検索エンジンの開発について
プレインストールWindowsからの脱却
Android・iPhoneとアプリ開発
Windows8、スタートボタンはもういらない?
サイトの作成とやるやらないは別
あの人は詳しいと言う人と言われる人
index.htmlと/の正規化について
AndroidOSとLinuxOS
モバイル端末で必ず見るもの
ユーザー参加型市民アプリ

2013年2月
2013年1月
2012年12月
2012年11月
2012年10月
2012年9月