【问题标题】:Receive JSON in PHP and save input as TXT file在 PHP 中接收 JSON 并将输入保存为 TXT 文件
【发布时间】:2016-08-28 10:48:34
【问题描述】:

我是 PHP 新手,我想完成以下工作。

接收 JSON 请求并将结果存储在 txt 文件中。我发送的 JSON 请求:

{"first_name":"William"}

我用来接收 JSON 的 PHP 代码:

        <?php

$request = file_get_contents('php://input');
$input = json_decode($request);

$firstName = $input;

$text = print_r($firstName,true);
file_put_contents('output.txt', var_export($text, TRUE));

文本文件已创建,但文本文件中没有内容。

【问题讨论】:

  • 您根本没有进行任何错误检查。我的猜测是 $request 为空或 json_decode() 返回 null。
  • 你的问题不清楚
  • 正如我已经提到的,我对 PHP 完全陌生。 PHP中错误检查的最佳方法是什么?
  • 检查您的错误日志。您是否有权写入文件?
  • 创建输出txt文件,所以权限没问题

标签: php json rest


【解决方案1】:

使用此代码

if(isset($_POST['input']){
 $input$_POST['input']; 

file_put_contents('output.txt', var_export($input, TRUE));
}

【讨论】:

    【解决方案2】:

    试试这个

    替换

    $text = print_r($firstName,true);
    

    $text = $input->{'first_name'};
    

    或者使用这个

    $firstName =$input->{'first_name'};
    
    $text = print_r($firstName,true);
    

    【讨论】:

    • 当我使用它时,我收到以下错误:通知:尝试在 C:\xampp\htdocs\API\signup2 中获取非对象的属性.php6 行
      第 6 行是以下行:$firstName =$input->{'first_name'};
    • 将输入名称更改为 input.json 后尝试
    • 对不起,我不明白你的意思,改名后试试
    • $request = file_get_contents('php://input');这应该是 $request = file_get_contents('input.json');
    • 写入 {"first_name":"William"} 的文件名应该是 input.json 。此文件应为“json”类型。
    【解决方案3】:

    以下代码有效

    $request = file_get_contents('php://input');
    $input = json_decode($request,true);
    
    $firstName = $input['first_name];
    
    $text = print_r($firstName,true);
    file_put_contents('output.txt', var_export($text, TRUE));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-28
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 2015-06-16
      相关资源
      最近更新 更多