fscanf

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

fscanf從文件中格式化輸入

說(shuō)明

fscanf(resource $handle, string $format, mixed &$... = ?): mixed

fscanf() 函數(shù)和 sscanf() 相似,但是它從與 handle 關(guān)聯(lián)的文件中接受輸入并根據(jù)指定的 format(定義于 sprintf() 的文檔中)來(lái)解釋輸入。

格式字符串中的任何空白會(huì)與輸入流中的任何空白匹配。這意味著甚至格式字符串中的制表符 \t 也會(huì)與輸入流中的一個(gè)空格字符匹配。

每次調(diào)用 fscanf() 都會(huì)從文件中讀取一行。

參數(shù)

handle

文件系統(tǒng)指針,是典型地由 fopen() 創(chuàng)建的 resource(資源)。

format

參數(shù)格式是 sprintf() 文檔中所描述的格式。

...

The optional assigned values.

返回值

如果只給此函數(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

參見

  • fread() - 讀取文件(可安全用于二進(jìn)制文件)
  • fgets() - 從文件指針中讀取一行
  • fgetss() - 從文件指針中讀取一行并過(guò)濾掉 HTML 標(biāo)記
  • sscanf() - 根據(jù)指定格式解析輸入的字符
  • printf() - 輸出格式化字符串
  • sprintf() - 返回格式化字符串