我想逐行读取test.txt文件,我把它转换为对象,但我的问题是它只是读取第1行而且有些错误,因为加载时间很短
$file = fopen(__DIR__.'/test.txt','r');
while (!feof($file)){
$file = fgets($file);
$obj = json_decode($file);
echo $obj->sid;
echo "<hr>";
}
这是我的test.txt:
{"sid":5555,"trans-id":"PROV_149663920543900000801","status":"0","base-price-point":"0","msisdn":"989905978846","keyword":"sub1","validity":1}
{"sid":2244,"trans-id":"PROV_149663920543900000801","status":"0","base-price-point":"0","msisdn":"989905978846","keyword":"sub1","validity":1}
答案 0 :(得分:2)
您正在覆盖代码第3行的gem update --system
。将其更改为$file
,您就可以了。
$line
答案 1 :(得分:2)
试试这个:
<?php
$filename= __DIR__.'/test.txt';
$array = explode("\n", file_get_contents($filename));
foreach ( $array as $line)
{
$obj = json_decode($line);
echo $obj->sid;
echo "<hr>";
}
?>
答案 2 :(得分:-1)
使用file()
功能:
$contents = file(__DIR__.'/test.txt');
foreach ($contents as $line)
{
$obj = json_decode($line);
echo $obj->sid;
echo "<hr>";
}
file()
函数读取文件并使用文件内容的每一行创建一个数组。
答案 3 :(得分:-2)
我建议使用file
来读取文件,因为这会将各行生成为数组条目,因此您可以使用foreach
$file=__DIR__ . '/json_src.txt';
$lines=file($file);
foreach( $lines as $line ){
$json=json_decode( $line );
printf('%s<hr />', $json->sid );
}