PHP fscanf 文件系统函数

  • 定义和用法

    fscanf - 从文件中格式化输入
  • 版本支持

    PHP4 PHP5 PHP7
    4.0.1(含)+支持 支持 支持
    4.3.0 在 PHP 4.3.0 之前,从文件中读入的最大字符数是 512(或者第一个 \n,看先碰到哪种情况)。从 PHP 4.3.0 起可以读取任意长的行。
  • 语法

    fscanf ( resource $handle , string $format [, mixed &$... ] )   
    
    fscanf() 函数和 sscanf() 相似,但是它从与 handle 关联的文件中接受输入并根据指定的 format(定义于 sprintf() 的文档中)来解释输入。 格式字符串中的任何空白会与输入流中的任何空白匹配。这意味着甚至格式字符串中的制表符 \t 也会与输入流中的一个空格字符匹配。 每次调用 fscanf() 都会从文件中读取一行。
  • 参数

    参数 必需的 描述
    handle 文件指针必须是有效的,必须指向由 fopen()fsockopen() 成功打开的文件(并还未由 fclose() 关闭)。
    format 参数格式是 sprintf() 文档中所描述的格式。
    ... 可选的分配值。取决于 format 参数。
  • 返回值

    如果只给此函数传递了两个参数,解析后的值会被作为数组返回。否则,如果提供了可选参数,此函数将返回被赋值的数目。 可选参数必须用引用传递。
  • 示例

    <?php
    $handle = fopen("users.txt", "r");
    while ($userinfo = fscanf($handle, "%s\t%s\t%s\n")) {
        list ($name, $profession, $countrycode) = $userinfo;
        //... 用值做一些事。
    }
    fclose($handle);
    ?>
    
  • 相关函数

    fread() - 读取文件(可安全用于二进制文件)
    fgets() - 从文件指针中读取一行
    fgetss() - 从文件指针中读取一行并过滤掉 HTML 标记
    sscanf() - 根据指定格式解析输入的字符
    printf() - 输出格式化字符串
    sprintf() - 返回格式化的字符串