file

file関数はファイルの内容を読み込んで配列に変換する関数です。次のプログラム(fs3.php)を作成してみましょう。

<?php
$file = "hello.txt";
$array = file($file);
print_r($array);

file関数は引数に、読み込み対象となるファイル名を指定します。上記の場合は$fileを引数に指定しているので、$fileに代入されているデータである"hello.txt"という名前のファイルを読み込み、ファイルの内容を行単位で配列の要素に変換し、戻り値として返却します。またここでは戻り値を受け取るために$array変数を用意しています。

作成したプログラムを実行してみましょう。ターミナルから次のように実行します。

$ php fs3.php
Array
(
    [0] => Hello PHP

    [1] => Hello Programming

)

実行結果から"hello.txt"ファイルの内容を読み込んで、行単位で配列の要素に変換しているのがわかります。

ところで先ほどの出力結果をじっくりみると改行が多いのが気になります。これは配列の各要素には改行コードが残っているためです。もし、改行コードが含まれない場合は次のような実行結果になるはずです。

$ php fs3.php
Array
(
    [0] => Hello PHP
    [1] => Hello Programming
)

file関数はファイルの内容を行単位で配列の要素に変換しますが、このとき各行の終端の改行コードの取扱については注意が必要です。file関数は第2引数に定数FILE_IGNORE_NEW_LINESを指定することで行の末端の改行コードを取り除くことができます。

さきほどのプログラム(fs3.php)を次のように修正してみましょう。

<?php
$file = "hello.txt";
$array = file($file, FILE_IGNORE_NEW_LINES);
print_r($array);

file関数の第2引数に定数FILE_IGNORE_NEW_LINESを指定しています。修正したプログラムを実行してみましょう。ターミナルから次のように実行します。

$ php fs3.php
Array
(
    [0] => Hello PHP
    [1] => Hello Programming
)

実行結果から各業の末端の改行コードが除去されているのがわかります。

PHPの関数には、引数として定数の指定が可能なものも多くあります。どのような定数が使えるのか調べるにはPHPマニュアル 関数リファレンスを参照するようにします。


前へ | 次へ