|
スポンサードリンク
ファイルから指定した書式にフォーマットに従って読み取るには、fscanf()関数を使います。
fscanf( ファイルハンドル ,
フォーマット
) |
fscanf()関数で、オープンしたファイルを1行づつ読み取り、指定したフォーマットに従って配列で返します。
ファイルの終端に達すると、FALSEを返します。
|
fscanf( ファイルハンドル ,
フォーマット ,
変数1,変数2,・・・ )
|
上記と異なる所は、第3引数以降で指定した変数に、読み込んだ値が代入されることです。
戻り値には、代入された数が返ってきます。 |
※フォーマットで指定する"\t"は、全ての空白(タブ、半角スペース)と一致するので注意すること!!
フォーマットの形式は、sprintf()関数と同じです。
例1) ファイル「/temp/test.txt」をオープンして、1行づつ読み取り、表示します。
読み込んだレコードを、空白で分割した形で配列で返します。
<?php
$handle = fopen( "c:/temp/test.txt", "r" );
while((list($str1, $str2,$str3) = fscanf( $handle, "%s\t%s\t%s" ) )) {
echo "str1:(" . $str1 . ") str2:(" . $str2 .") str3:(" . $str3 . ")\n";
}
fclose($handle);
?>
●実行結果
str1:(aaa) str2:(bbb) str3:(ccc)
str1:(aaa) str2:(bbb) str3:(ccc)
str1:(aaa) str2:(bbb) str3:(ccc)
|
ファイル「c:/temp/test.txt」 の内容
aaa bbb ccc
aaa bbb ccc
aaa bbb ccc
|
例2) 例1のfscanf()関数の第3引数以降を指定した形式で実行します。
<?php
$handle = fopen( "c:/temp/test.txt", "r" );
while( fscanf( $handle, "%s\t%s\t%s", $str1, $str2, $str3 ) ) {
echo "str1:(" . $str1 . ") str2:(" . $str2 .") str3:(" . $str3 . ")\n";
}
fclose($handle);
?>
●実行結果
str1:(aaa) str2:(bbb) str3:(ccc)
str1:(aaa) str2:(bbb) str3:(ccc)
str1:(aaa) str2:(bbb) str3:(ccc)
|
スポンサード リンク
|