我正在尝试将数据从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字符串时,它会给我一个有效的字符串
请在我的的另一个问题中找到这个问题的完整代码
无法访问php中的json数组,它返回null和警告:为foreach()提供的参数无效
我为您创建了一个我所说的例子:-
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
的文件中,然后只需放置该文本文件的完整路径即可使用上面给出的两个代码
fistart您应该检查您的url是否正确。如果每件事都是正确的,但仍然没有显示响应,请使用curl功能,如文件的alter native _ get_content
有了上帝,恩典解决了我的问题-
传递true以将对象转换为关联数组,因此访问数字/关联数组如下。
$var = $data[0]['key'];
然后,我们使用数字和关联数组语法的组合来访问多维数组中所需的元素。
但是如果我尝试var_dump($data);返回为null。
参考教程:http://www.dyn-web.com/tutorials/php-js/json/decode.php