我的data.txt
文件为:
4
73个
67
38
33个
我正在运行这个php文件到测试fscanf 。
<?php
$handle = fopen ("data.txt", "r");
fscanf($handle, "%d",$n);
echo 'n:', $n; //outputs 4.
$grades = array();
for($grades_i = 0; $grades_i < $n; $grades_i++){
fscanf($handle,"%d",$grades[]);
}
print_r($grades);
?>
上述脚本的输出是:
n:4数组([0] =&gt; 73 1 =&gt; 67 [2] =&gt; 38 [3] =&gt; 33)
我看过这个documentation没有解释可能的参数,即fscanf()中的第三个参数和其他参数。
欢迎任何形式的想法。
答案 0 :(得分:2)
如果您使用
10 73 67 38 33
在你的档案中,你得到
n:10Array
(
[0] => 73
[1] => 67
[2] => 38
[3] => 33
[4] =>
[5] =>
[6] =>
[7] =>
[8] =>
[9] =>
)
只是因为第一个fscanf将第一行(本例中为“10”)读入$ n。这就是第三个参数的用法(参见文档中的混合&amp; $ :http://php.net/manual/de/function.fscanf.php)。
好的,我在http://php.net/manual/en/function.fscanf.php检查了英文文档时,我理解你的问题。德国解释说明:“Optionale alsReferenzübergebeneVuturen,in welche die geparsten Werte geschrieben werden sollen。”
翻译:可选参数描述了一个引用,其中将分析已解析的值。
因此,如果您对第一个fscanf使用$ n,该函数会将第一行的内容(在您的示例中为4)放入$ n。
答案 1 :(得分:0)