如何在PHP(fopen)中从文件中读取单独的行
代码取自hackerrank.com 文件名内的内容<代码>php://stdin如何在PHP(fopen)中从文件中读取单独的行,php,Php,代码取自hackerrank.com 文件名内的内容php://stdin 5 4 1 2 3 4 5 代码: 我很困惑,为什么代码只读取第二行(,即1 2 3 4 5),而不读取第一行?如何读这两行字?还是第一个?代码工作正常 每次调用fscanf时,您都在读取文件的一行。这意味着,在执行fscanf($handle、%i%i、$n、$d)后,文件指针跳到第二行 检查变量$n和$d,两者应分别等于5和4 如果要读取和分析所有行,请避免使用fscanf,因为每行的模式不同: $handle
5 4
1 2 3 4 5
代码:
我很困惑,为什么代码只读取第二行(
,即1 2 3 4 5
),而不读取第一行?如何读这两行字?还是第一个?代码工作正常
每次调用fscanf
时,您都在读取文件的一行。这意味着,在执行fscanf($handle、%i%i、$n、$d)
后,文件指针跳到第二行
检查变量$n
和$d
,两者应分别等于5
和4
如果要读取和分析所有行,请避免使用
fscanf
,因为每行的模式不同:
$handle = fopen("php://stdin", "r");
while ($line = fgets($handle)) {
$a = explode(" ", $line);
var_dump($a);
}
代码运行得很好 每次调用
fscanf
时,您都在读取文件的一行。这意味着,在执行fscanf($handle、%i%i、$n、$d)
后,文件指针跳到第二行
检查变量$n
和$d
,两者应分别等于5
和4
如果要读取和分析所有行,请避免使用
fscanf
,因为每行的模式不同:
$handle = fopen("php://stdin", "r");
while ($line = fgets($handle)) {
$a = explode(" ", $line);
var_dump($a);
}
另一种出去的方式
$handle = fopen ("php://stdin");
$numbers = str_replace("\n", ' ', $handle);
$numbers = explode(' ', $numbers);
foreach($numbers as $key => $value)
if($value == '')
unset($numbers[$key]);
echo '<pre>';
print_r($numbers);
另一种出去的方式
$handle = fopen ("php://stdin");
$numbers = str_replace("\n", ' ', $handle);
$numbers = explode(' ', $numbers);
foreach($numbers as $key => $value)
if($value == '')
unset($numbers[$key]);
echo '<pre>';
print_r($numbers);
你的意思是:$arr=[0=>12345',1=>54'];输出是:
12345
,echo=print\r($a\u temp)`not$a
为什么这个代码总是读取文件的第二行???你的意思是:$arr=[0=>'12345',1=>'54';输出是:12345
,echo=print\r($a\u temp)`不是$a
为什么这个代码总是读取文件的第二行???
Array
(
[1] => 5
[2] => 4
[3] => 1
[4] => 2
[5] => 3
[6] => 4
[7] => 5
)