在档案A:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://adomain.com/test.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
$result = curl_exec($ch);
var_dump(json_decode($result, true));
curl_close($ch);
?>
在档案B中:
<?php
$json['message'] = 123;
return json_encode($json);
?>
在浏览器中运行文件A时,我希望我会从文件B中看到一个返回的json数组,但是我只能看到它显示了#34; NULL&#34;。实际上它有什么问题?感谢。
答案 0 :(得分:2)
Curl获取脚本的输出。所以你的脚本应该输出(print
,echo
):
<?php
$json['message'] = 123;
echo json_encode($json); // not return
?>
如果您的fileA
与某个ajax请求相关联,那么您应该了解客户端和服务器之间的通信是通过strings
执行的,简单strings
。
因此,如果fileA.php
输出的内容不是正确编码的 json字符串,那么您不能将此输出视为json。因此无法在javascript中使用output.message
表示法。因此,您的脚本应该返回正确编码的 json字符串(已由fileB
创建):
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://adomain.com/test.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
$result = curl_exec($ch);
echo $result; // here, response from fileB which is already json
curl_close($ch);
?>