array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'function.fscanf.php', 1 => 'fscanf', ), 'up' => array ( 0 => 'ref.filesystem.php', 1 => 'ファイルシステム 関数', ), 'prev' => array ( 0 => 'function.fread.php', 1 => 'fread', ), 'next' => array ( 0 => 'function.fseek.php', 1 => 'fseek', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/filesystem/functions/fscanf.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
fscanf — フォーマットに基づきファイルからの入力を処理する
関数fscanf() は sscanf()
に似ていますが、stream
が指すファイルから入力を取得し、
指定したフォーマット format
に基づき解釈を行います。
フォーマット文字列におけるあらゆる空白は
入力ストリームのあらゆる空白にマッチします。
これはつまりフォーマット文字列のタブ (\t
) すらも
入力ストリームの空白1個にマッチしてしまうことを意味します。
fscanf() をコールするたびに、ファイルから 1 行ずつ読み込みます。
この関数のパラメータが二つだけの場合、処理された値は配列として返されます。 他方、オプションのパラメータが指定された場合、 この関数は、代入された値の数を返します。 オプション引数は参照渡しとする必要があります。
string
で利用可能な部分文字列よりも、
format
で期待された部分文字列の数が多い場合は、null
が返されます。
その他のエラーが発生した場合は、false
が返されます。
例1 fscanf() の例
<?php
$handle = fopen("users.txt", "r");
while ($userinfo = fscanf($handle, "%s\t%s\t%s\n")) {
list ($name, $profession, $countrycode) = $userinfo;
//... これらの値を使用して何か行う
}
fclose($handle);
?>
例2 users.txt の内容
javier argonaut pe hiroshi sculptor jp robert slacker us luigi florist it