【问题标题】:PHP textfile value to arrayPHP文本文件值到数组
【发布时间】:2021-05-08 05:03:16
【问题描述】:

我有这样的$data 变量:

$data = [  'name'                => $name,
           'student_id'          => $student_id,
       ];

我想把它保存到文本文件中:

$path = storage_path('app/public/').'student.txt';

        if (is_file($path)) {
            
            $path_ = Storage::disk('public')->prepend('data.txt', json_encode($data).',');
        } else {
            
            $path_ = Storage::disk('public')->put('data.txt', json_encode($data).',');
        }

然后我想看看输出:

$json = (Storage::disk('public')->get('data.txt'));
return $json;

值是:

{"name":"Michaela","student_id":"1202"},
{"name":"Zach","student_id":"1524"},

我想要这样的输出:

{
    {"name":"Michaela","student_id":"1202"},
    {"name":"Zach","student_id":"1524"},
}

所以每当点击这个函数时,新的数组都会在 { } 中追加。我怎样才能做到这一点?

【问题讨论】:

    标签: php arrays json laravel text


    【解决方案1】:

    您需要的输出实际上不是有效的 JSON。有效的格式是,

    [
       {"name":"Michaela","student_id":"1202"},
       {"name":"Zach","student_id":"1524"},
    ]
    

    要获得这种格式,请将您的代码更改为以下

    $data[] = [
          'name'=> $name,
          'student_id'=> $student_id,
    ];
    

    例如,

    $data[] = [
          'name'=> 'A',
          'student_id'=> 'a',
    ];
    $data[] = [
          'name'=> 'B',
          'student_id'=> 'b',
    ];
    

    在保存到文件之前,将 $data 变量编码为 json,

    $jsondata = json_encode($data);
    

    【讨论】:

    • 抱歉,它只是返回 [{"name":"Michaela","msg":"1202"}] [{"name":"Zach","student_id":"1524 "}] 我希望像您的评论一样使用有效的格式,但它不起作用
    • 这应该可以。这是一个工作示例。顺便说一句,您在保存到文件之前使用过 json_encode($data) 吗? $data[] = [ '姓名'=> 'A', 'student_id'=> 'a', ]; $data[] = [ 'name'=> 'B', 'student_id'=> 'b', ];打印(json_encode($data));
    • 谢谢它的工作,但这种方式是一个人去(?)对于我的情况,数据一个接一个,所以我认为最终结果将像我的第一个评论,括号将一个一个地包装而不是一个完整的数据
    • 我不明白你说的数据是什么意思。如果这意味着您需要将 txt 文件用作数据库,我不推荐它,但您可以在收到数据时打开文件并读取内容,然后附加新数据。如果一个接一个意味着它们是分批进来的,你可以使用循环。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多