LoginSignup
0
0

More than 1 year has passed since last update.

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

Last updated at Posted at 2022-05-27

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

0
0
0

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
  3. You can use dark theme
What you can do with signing up
0
0