search
LoginSignup
0

posted at

updated at

【PHP】fopen()関数とfgets()関数を使い、ファイルを開いて取得する流れ

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が返っており、読み込まれたことが分かります。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0