PR

PHPでファイルを読み込むサンプルプログラム!一行ずつ・配列に格納

スポンサーリンク

PHPでファイルの読み込みを行う方法はいくつかあります。「1行ずつ読み込む方法」「文字列として一気に読む込む方法」「一気に読み込んで配列に格納する方法」などがありますが、それぞれサンプルプログラム紹介していきます。

スポンサーリンク

1行づつ読み込む方法(fgets)

$fp = fopen('read_file.txt', 'r');
 
while( $line_txt = fgets($fp) ) {
    echo $line_txt;
}

fclose($fp);

プログラム解説

$fp = fopen(ファイルパス, ‘r’);
fopen 関数でファイルを開きます。第1引数は読み込むファイルのパスを指定し、第2引数の「r」は読み込みモードを指定しております。モードは「r」の他にもいろいろありますが、主なものは書き込みモード「w」、追記モード「a」です。
$line_txt = fgets($fp);
fgets 関数でファイルから1行ずつ読み込みを行い、変数に文字列として格納しております。
fclose($fp);
読み込みが終わったら、fclose 関数でファイルを閉じます。

feof 関数を使用した書き方

1行づつの読み込みはfeof 関数を使って次のように書くことも可能です。feof 関数はファイルの最後まで達しているかどうかを調べます。
$fp = fopen('read_file.txt', 'r'); 

while( !feof($fp) ) { 
    
    $line_txt = fgets($fp);
    echo $line_txt;  
} 

fclose($fp);

ファイルを一気に読み込む方法(file_get_contents)

ファイルを1行づつではなく、関数を使用して内容をすべて一気に読み込むこともできます。

$contents = file_get_contents('read_file.txt');
echo $contents;

プログラム解説

$contents = file_get_contents(ファイルのパス);
file_get_contents 関数は引数にファイルのパスを指定することで、ファイルの内容をまるごと読み込むことができます。読み込んだ内容は文字列として変数に格納されます。
この関数で読み込んだ内容をHTMLで表示する場合はうまく改行されませんが、改行コードを「< br />」に変換すれば、きちんと改行もされて表示されます。文字列の変換は通常、str_replace 関数を使用しますが、nl2br 関数を使用すれば改行コードを「< br />」に変換してくれます。
$str_br = nl2br(文字列);
file_get_contents 関数はxmlファイルやjsonファイルを読み込むのに便利です。引数にウェブ上のURLを指定して読み込むことも可能です。

ファイルを読み込んで配列に格納する方法(file)

ファイルを一気に読み込んで1行ずつ配列に格納することもできます。

$array = file('read_file.txt');
print_r($array);

プログラム解説

$array = file(ファイルのパス);
file 関数を使用することでファイルの内容を一気に読み込んで、1行づつ配列に格納することができます。読み込んだ行の末尾には改行コードがついてます。例えば次のような内容のファイルを読み込んだ場合、
aaa
bbb
ccc
ddd
eee
print_r で表示した場合、結果は次のようになります。
Array
(
    [0] => aaa

    [1] => bbb

    [2] => ccc

    [3] => ddd

    [4] => eee
)
第2引数(任意)に「FILE_IGNORE_NEW_LINES」を指定することで、改行コードを取り除いて読み込むこともできます。
$array = file(ファイルのパス, FILE_IGNORE_NEW_LINES);
FILE_IGNORE_NEW_LINES」を指定した場合の実行結果は次のようになります。
Array
(
    [0] => aaa
    [1] => bbb
    [2] => ccc
    [3] => ddd
    [4] => eee
)

 

php
スポンサーリンク
シェアする
-をフォローする
プログラミングのメモ

コメント