(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
fscanf — 從文件中格式化輸入
fscanf() 函數(shù)和
sscanf() 相似,但是它從與
handle
關(guān)聯(lián)的文件中接受輸入并根據(jù)指定的
format
(定義于 sprintf()
的文檔中)來(lái)解釋輸入。
格式字符串中的任何空白會(huì)與輸入流中的任何空白匹配。這意味著甚至格式字符串中的制表符
\t
也會(huì)與輸入流中的一個(gè)空格字符匹配。
每次調(diào)用 fscanf() 都會(huì)從文件中讀取一行。
如果只給此函數(shù)傳遞了兩個(gè)參數(shù),解析后的值會(huì)被作為數(shù)組返回。否則,如果提供了可選參數(shù),此函數(shù)將返回被賦值的數(shù)目。 可選參數(shù)必須用引用傳遞。
版本 | 說(shuō)明 |
---|---|
4.3.0 | 在 PHP 4.3.0 之前,從文件中讀入的最大字符數(shù)是 512(或者第一個(gè) \n,看先碰到哪種情況)。從 PHP 4.3.0 起可以讀取任意長(zhǎng)的行。 |
示例 #1 fscanf() 例子
<?php
$handle = fopen("users.txt", "r");
while ($userinfo = fscanf($handle, "%s\t%s\t%s\n")) {
list ($name, $profession, $countrycode) = $userinfo;
//... do something with the values
}
fclose($handle);
?>
示例 #2 users.txt 的內(nèi)容
javier argonaut pe hiroshi sculptor jp robert slacker us luigi florist it