如何使用 fscanf 读取整行(字符串)?

a53*_*416 4 php string format scanf

我有一个文本文件,我正在逐行阅读。当我到达字符串行(六个字长)时,我想读取它并将其分配给变量 $str,所以我这样做:

fscanf($handle, "%s", $str);

//The line is "one two three four"

echo $str ; // prints out "one"
Run Code Online (Sandbox Code Playgroud)

但是,由于每个单词后面的空格,它只保存字符串的第一个单词。我如何捕捉整个事情?

Ser*_*e P 5

这是一个老问题,但对于谷歌员工:

要使用 fscanf() 读取整行,请使用“%[^\n]”。在 fscanf() 中,$[^characters] 表示匹配任何不在括号之间的集合中的字符序列(类似于正则表达式中的 [^characters]*)。所以这匹配除换行符以外的任何字符序列。见http://php.net/manual/en/function.sscanf.php#56076

来自PHP fscanf 与 fgets