Json_decode返回字符串(0)""

时间:2016-04-08 05:18:25

标签: php json null

我正在尝试将数据从ios传递到服务器。

Php代码:

<?php
   $inputJSON = file_get_contents('php://input');
   $data = json_decode($inputJSON, TRUE);
   var_dump($data);
?>

这给了我string(0) ""。我不知道这是什么意思。

        echo $inputJSON; gives nothing 
       var_dump($inputJSON); returns  string(0) ""

当我打印json-string时,它会给我一个有效的字符串

请在我的另一个问题中找到此问题的完整代码

Cannot able to access json array in php , it returns null and Warning: Invalid argument supplied for foreach()

3 个答案:

答案 0 :(得分:2)

我为你创造了一个我正在谈论的例子: -

1.我的文件(php代码文件和json字符串文件)位于同一工作目录中。检查: - http://prntscr.com/apkbp9

2. json字符串文件内容应为: -

[
    {
        "email" : "",
        "Name" : "Ddd",
        "contact2" : "",
        "ontact1" : ""
    },
    {
        "email" : "",
        "Name" : "Ddd",
        "contact2" : "",
        "contact1" : ""
    },
    {
        "email" : "",
        "Name" : "Dddddr",
        "contact2" : "",
        "contact1" : ""
    }
]

点击此处: - http://prntscr.com/apkbx0

3. php代码文件内容: -

<?php
   $inputJSON = file_get_contents('input.txt');
   echo $inputJSON;
   $data = json_decode($inputJSON, TRUE);
   echo "<pre/>";print_r($data);
?>

点击此处: - http://prntscr.com/apkc6x

我的浏览器输出: - http://prntscr.com/apkcoi

您可以使用下面的CURL: -

<?php
   function url_get_contents ($Url) {
        if (!function_exists('curl_init')){ 
            die('CURL is not installed!');
        }
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $Url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $output = curl_exec($ch);
        curl_close($ch);
        return $output;
    }
    $inputJSON = url_get_contents('php://input');
    echo $inputJSON;
    $data = json_decode($inputJSON, TRUE);
    echo "<pre/>";print_r($data);

?>

有关CURL的更多参考: - http://php.net/manual/en/book.curl.php

注意: - 如果两者都不起作用,那么首先您需要将json数据保存在扩展名为.txt的文件中,然后您可以同时使用上面给出的两个代码放置该文本文件的完整路径。

答案 1 :(得分:1)

fisrt你应该检查你的网址是否正确。如果每件事情都是对的,但仍然没有显示响应,请使用curl功能,例如alter native of file_get_content

答案 2 :(得分:1)

上帝格蕾丝解决了我的问题 -

传递true以将对象转换为关联数组,因此可以像这样访问数字/关联数组。

$var = $data[0]['key'];

然后我们使用数字和关联数组语法的组合来访问多维数组中的所需元素。

但是如果我尝试var_dump($ data);重新调整。

参考教程:http://www.dyn-web.com/tutorials/php-js/json/decode.php