file
| 解説 | ファイルの内容を全て取得して配列に格納する |
|---|---|
| 書式 | array file( string filename [, int use_include_path ] ) |
array file( string ファイル名 [, int インクルードパス ] ) |
|
| 引数 |
filename
ファイル名
|
use_include_path
インクルードパスを検索するかどうか
|
|
| 返値 | ファイルのデータが格納された配列/FALSE(失敗した場合) |
file()は、ファイルの内容を全て取得しますが、1行ずつ配列に格納して返してくれます。「1行ずつ」という事は、改行文字「\n」などのある所までが1行として扱われるという事です。取得した内容に改行文字は付いたままとなります。
filename
ファイル名
use_include_path
インクルードパス
fopen()関数を参照して下さい。
PHP4.3.0以降で、ファイルの内容を全て文字列として取得するfile_get_contents()を使うことができるようになりました。file_get_contents()は、配列としてではなく文字列としてファイルの内容を取得します。
これに対し、readfile()ではファイルの内容を全て出力し、配列や文字列への格納は行いません。すぐに出力する事が目的の場合はreadfile()が効率的です。
参考関数
fopen()---- ファイルまたはURLを開くfile_get_contents()---- ファイルの内容を全て取得するreadfile()---- ファイルを出力する
サンプルスクリプト
簡単な利用例
<?php
$n = 10; // 出力行数を指定
$file = @file("somefile.php"); // ファイルの内容を配列に格納
$i = 0; // カウント値の設定
// 指定行数まで出力
while( $i < $n ){
echo "$file[$i]";
$i++;
}
?>
URL上のHTMLソースを取得する
<?php
$lines = @file('http://www.example.com/'); //ファイルの内容を配列に格納。
// 配列の内容をHTMLソースに変換表示し、行番号もつけます。
foreach( $lines as $line_num => $line ) {
echo "{$line_num} : " . htmlspecialchars( $line ) . "<br>\n";
}
?>


