如何将TXT文件的内容插入JSON文件

时间:2018-06-07 10:12:41

标签: php json

我想要导入"链接"从links.txt文件中将其放在JSON文件上,但结果如下:

{"domain":[ "www.google.es","www.yahoo.com","www.example.com"],
 "id":6
},
{"domain":["www.google.es","www.yahoo.com","www.example.com"],
 "id":6
},
{"domain":["www.google.es","www.yahoo.com","www.example.com"],
 "id":6
}

预期:

{"domain":"www.google.es","id":6},
{"domain":"www.yahoo.com"],"id":7},
{"domain":["www.example.com"],"id":8}

正如你所看到的,id在我想要的不同id上是相同的,并且链接被添加3次3个链接,我想在1个选项上添加1个链接。

<?php
$jsonContents = file_get_contents('data/data.json');
$data = json_decode($jsonContents, true);
$fp = 'links.txt';
$last_item = end($data);
$last_item_id = $last_item['id'];
$contents_arr = file($fp,FILE_IGNORE_NEW_LINES);
foreach($contents_arr as $key=>$value) {
    $contents_arr[$key] = rtrim($value, "\r");
    $data[] = array(
        'domain' => $contents_arr,
        'id' => $last_item_id+1,

    );
}
$json = json_encode($data);
file_put_contents('data/data.json', $json);

1 个答案:

答案 0 :(得分:3)

<$> $ last_item_id + 1返回$ last_item_id + 1,它不会更改$ last_item_id变量。

不要在循环内更改用于循环的$ contents_arr数组。

您使用域$ contents_arr,其中包含所有值。为域新数组创建,即:

ViewPager.setOffscreenPageLimit(3);