ファイルの入力

TEXT 形式のデータを読み込みます。

プログラムの作成-1

File_Get.php のソースコードを utf-8(BOM 無し)でタイプして c:\DATA\PHP\ に格納して下さい。
カレントフォルダー(実行中のディレクトリ)からファイル(test.txt)を入力して印字します。
ファイル名は環境によって、大文字/小文字を区別します。
<?php
    // test.txt を入力する
    if (($fp = fopen("test.txt","r")))
    {   while(!feof($fp))
        {   print(fgets($fp));
        }
        fclose($fp);
    }
?>

【実行画面】
File_Put.php でカレントディレクトリに "test.txt" を作成して File_Get.php で印字します。
File_Put.php は ファイルの作成 を参照して下さい。
"test.txt" は BOM 無しの utf-8 で、改行コードは \n(0A) が使われています。
Microsoft Windows [Version 10.0.18363.836]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\Users\maeda>CD C:\DATA\PHP

C:\DATA\PHP>php File_Put.php
test.txt Complete

C:\DATA\PHP>php File_Get.php
りんご
バナナ
パイナップル
いちご

C:\DATA\PHP>

プログラムの説明

  1. if (($fp = fopen("test.txt","r"))) でファイルをオープンします。
    $fp はファイルハンドル(File Handle)で、"r" は読み込み用にオープンします。
  2. while(!feof($fp)) でファイルのデータが無くなるまでループします。
    fgets($fp) で一行ずつ入力して印字します。
        {   while(!feof($fp))
            {   print(fgets($fp));
            }
    
  3. 出力が終われば fclose して下さい。
    改行コードは \n でも \r\n でも同じように印字されます。

プログラムの作成-2

File_Get2.php のソースコードを utf-8(BOM 無し)でタイプして c:\DATA\PHP\ に格納して下さい。
ファイルの内容を全て文字列に読み込みます。
<?php
$str = file_get_contents('test.txt');
echo $str;
?>

【実行画面】
コマンドプロンプトを起動して file_put.php で "test.txt" を作成して File_Get2.php で印字します。
C:\DATA\PHP>php file_put.php
C:\DATA\PHP>php file_get2.php
りんご
バナナ
パイナップル
いちご

C:\DATA\PHP>

プログラムの説明

  1. $str = file_get_contents('test.txt'); で "test.txt" のデータを $str に読み込みます。
  2. 今回は echo で $str を印字してみました。
    print で印字することも出来ます。

【NOTE】

File_Get.php を utf-8(BOM 有り)でタイプすると、りんごの頭に意味不明の文字が印字されます。
これは utf-8(BOM 有り)でタイプした BOM の影響のようです。
PHP プログラムをコマンドプロンプトから実行するときは、utf-8(BOM 無し)でタイプして下さい。
・りんご
バナナ
パイナップル
いちご

前田稔の超初心者のプログラム入門
PHP Program