【问题标题】:file_get_contents("php://input") showing null when var_dumpfile_get_contents("php://input") 在 var_dump 时显示 null
【发布时间】:2015-11-17 10:41:58
【问题描述】:

file_get_contents("php://input"); 不工作。

$data=$_GET['json']; 正在工作。

我的网址:

http://localhost/demo/plainjson.php?json={"order_number":"54321","id":"1102","status":3,"card_no":"1234"}

$data = file_get_contents("php://input");
$json = json_decode($data, true);
var_dump($json);// o/p->Null
print_r($json);// o/p-> nothing

echo $json[2];

如何使用这个需要帮助来回显或打印 url json 数组或值。 有解释。 提前谢谢你。

【问题讨论】:

  • 请忽略最后一行代码 echo $json[2];它也是 echo false 或者我不知道。
  • 在请求中,您将 json 放入名为 json 的查询字符串 var 中,因此,json_decode 不应该在 $data['json'] 上,而不仅仅是 $data
  • 我不快乐,为此我现在必须学习 Cake PHP。

标签: php json


【解决方案1】:

allow_url_include 可能没有在您的 php.ini 中设置为 true?这在一些较旧的共享托管服务上很常见

请参阅此Stack Overflow 帖子了解潜在的修复方法。

啊……问题是你没有发布任何东西。而是通过查询字符串发送它,因此流没有要检索的主体。所以据我了解,您不能使用流来获取数据

See PHP.net Aritical

"php://input 是一个只读流,允许您从请求正文中读取原始数据。在 POST 请求的情况下"

更多请看post

【讨论】:

  • 检查了我在 php.ini 中将值从:allow_url_include = off 更改为 on 并重新启动了 wamp。 m 使用 wamp。还是不行。
  • 那么,你能告诉 m hw 发布数据吗?在我想使用 file_get_contents("php://input") 函数获取值的同一页面上。我知道有点愚蠢但是.. :)
  • 嗯,有几个选择。您可以在表单字段中提交包含数据的表单,并将表单方法类型提交给 POST。或者您可以通过 cURL 在 PHP 中执行此操作。请参阅 - davidwalsh.name/curl-post - 了解更多说明。
  • 如果您的网站是 https 并且我们使用该网站的 http url 提交内容类型 JSON 的 POST 请求,那么您可能会在向 https 网站提交数据时将 php://input 设为 null。使用 https 可能会更好
猜你喜欢
  • 1970-01-01
  • 2014-01-24
  • 1970-01-01
  • 2012-12-27
  • 2016-06-02
  • 2014-06-11
  • 1970-01-01
  • 1970-01-01
  • 2016-08-29
相关资源
最近更新 更多