如何在 php 中从文件中读取以空格分隔的整数


How to read integers separated by space from a file in php

我正在尝试使用 php 读取多个数字用空格分隔的行。最初我尝试使用 fscanf,但问题是,由于 fscanf 一次读取一行,它只读取第一个数字。我很困惑该怎么办。

示例输入20 30 -5987 456 523

对于这种情况,最好的方法是结合使用分解和文件读取。该策略最初将整行读取为字符串。然后使用爆炸将数组中的所有数字存储。但是,在这种情况下,数组稍后将是一个字符串数组,我们可以将数组元素的类型从字符串更改为整数。这是如何

<?php
$_fp = fopen("php://stdin", "r");
fscanf($_fp, "%d'n", $count);
$numbers = explode(" ", trim(fgets($_fp)));
foreach ($numbers as &$number)
{
    $number = intval($number);
}
sort($numbers);
?>
$input = trim(fgets(STDIN));
$arr = explode(" ", $input);      
foreach($arr as &$number){
    $number = (int)$number;
}

如果要从"fopen"函数中删除空格,请使用"修剪"功能或用修剪功能包围变量。例:

echo "Please enter series limit : ";
$handles = fopen ("php://stdin","r");
$n = trim(fgets($handles));

因此,在这里我们可以删除字符之间以及末尾的空格。