PHP7技術者認定初級試験に向けて学習中の身です。
備忘録として残します。
1. txtファイルを作成
test.txt
===== ===== ===== ===== =====
これはテスト用のテキストファイルです
===== ===== ===== ===== =====
2. open.phpファイルを作成
open.php
<?php
$fp = fopen("test.txt", "r");
// ファイルを1行ずつ取得する
while ($line = fgets($fp)) {
echo "$line\n";
}
// ファイルを閉じる
fclose($fp);
?>
3. 実行結果
===== ===== ===== ===== =====
これはテスト用のテキストファイルです
===== ===== ===== ===== =====
fopen("test.txt", "r");
この部分は、第一引数にファイル名、第二引数にモードを記載しています。
"r"とは、下記の通りテキストファイルの読み込み用のモードです。
fopen()関数で使用することのできるモードのうち、試験に出やすそうだと考えるもの一覧
r テキストファイルの読み込み
w テキストファイルの書き込み(上書き)
a テキストファイルの書き込み(追加)
rb バイナリファイルの読み込み
rb+ バイナリファイルの読み込み書き込み ※ファイルが存在しないと警告を発し、falseを返す
wb+ バイナリファイルの読み込み、書き込み ※ファイルが存在しなくても大丈夫
wb バイナリファイルの書き込み(上書き)
ab バイナリファイルの書き込み(追加)
xb バイナリファイルの書き込み
xb+ バイナリファイルの読み込み、書き込み
補足(feof関数)
ファイルが最後まで読み込まれたか確認するための関数。
読み込む系のモードを使う際はこちらも使った方が良い。
open.php(feof関数を使用したバージョン)
<?php
$fp = fopen("test.txt", "r");
var_dump(feof($fp));
while ($line = fgets($fp)) {
echo "$line\n";
}
var_dump(feof($fp));
fclose($fp);
?>
実行結果
bool(false)
===== ===== ===== ===== =====
これはテスト用のテキストファイルです
===== ===== ===== ===== =====
bool(true)
===== ===== ===== ===== =====
これはテスト用のテキストファイルです
===== ===== ===== ===== =====
fgets関数でファイルを読み込んだ後で真偽値のtrueが返っており、読み込まれたことが分かります。