当前位置:Gxlcms > PHP教程 > 如何使php://input接收到另一个php的数据

如何使php://input接收到另一个php的数据

时间:2021-07-01 10:21:17 帮助过:78人阅读

程序设置只有接受到APP、POST过来的数据才会继续走,否则直接跳出。

如果想通过php来进行测试,那么要怎么去编译?

通过curl去post,在file_get_contents("php://input")里被判断为空。

a.php

$json = file_get_contents("php://input");//接收APP请求
if (isset($json) && !empty($json)) {
    $json = json_decode($json, true);
}else{
    die("没接收到任何数据,请求失败!");
}

b.php

$url = "a.php";

$param = [
    'a'=>'xxx',
    'b'=>'xxx'
    ];

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($param));
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

$response = curl_exec($ch);

curl_close($ch);

echo $response;

回复内容:

程序设置只有接受到APP、POST过来的数据才会继续走,否则直接跳出。

如果想通过php来进行测试,那么要怎么去编译?

通过curl去post,在file_get_contents("php://input")里被判断为空。

a.php

$json = file_get_contents("php://input");//接收APP请求
if (isset($json) && !empty($json)) {
    $json = json_decode($json, true);
}else{
    die("没接收到任何数据,请求失败!");
}

b.php

$url = "a.php";

$param = [
    'a'=>'xxx',
    'b'=>'xxx'
    ];

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($param));
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

$response = curl_exec($ch);

curl_close($ch);

echo $response;

你传过云用的http_build_query,收到却用json_decode,这肯定没数据呀,收到数据应该用parse_str解析

有可能是编码问题,先将接收过来的东西存一下,看看是否有数据 不要直接json_decode


$url = "http://localhost/a.php";
$param = [
    'a'=>'xxx',
    'b'=>'ooo'
    ];

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($param));
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

$response = curl_exec($ch);

curl_close($ch);

echo $response;

人气教程排行