gpt4 book ai didi

php - 想在php中发送和接收json数据

转载 作者:可可西里 更新时间:2023-10-31 23:05:25 28 4
gpt4 key购买 nike

根据应用程序要求,我正在尝试开发两个可以通过 Json 相互通信的 PHP。我尝试在线搜索但没有找到解决方案。

任何人都可以建议我正确的路径吗?

我在 mysql 数据库中有数据,转换后的数据将采用 json 格式,如下所示:(也在寻找通过 PHP-JSON 对象和数组获取此数据格式的代码。)

{ "user" : [   
{ "firstName" : "Vignesh",
"lastName" : "Prajapati",
"age" : 23,
"email" : ["vignesh@gmail.com","vignesh@yahoo.com"],
"subject" : ["English","Gujarati", "Hindi"]
},

{ "firstName" : "Vaibhav",
"lastName" : "Prajapati",
"age" : 19,
"email" : ["vaibhav@gmail.com","vaibhav@yahoo.com","vaibhav@aol.com"],
"subject" : ["English","Spanish", "Chinese","Sanskrit"]
}
]
}

我的发送Json数据的Php代码:(send.php)

<?php

$data = ' { "user" : [
{ "firstName" : "Vignesh",
"lastName" : "Prajapati",
"age" : 23,
"email" : ["vignesh@gmail.com","vignesh@yahoo.com"],
"subject" : ["English","Gujarati", "Hindi"]
},

{ "firstName" : "Vaibhav",
"lastName" : "Prajapati",
"age" : 19,
"email" : ["vaibhav@gmail.com","vaibhav@yahoo.com","vaibhav@aol.com"],
"subject" : ["English","Spanish", "Chinese","Sanskrit"]
}
]
} ';

$url_send ="http://localhost/rec.php";
$str_data = json_encode($data);

function sendPostData($url, $post){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec($ch);
curl_close($ch); // Seems like good practice
return $result;
}

echo " " . sendPostData($url_send, $str_data);

?>

我的接收Json数据的Php代码:(rec.php)

<?php

$json_input_data=json_decode(file_get_contents('php://input'),TRUE);

echo $json_input_data;


?>

最佳答案

修改您的函数以在 post 请求中发送 JSON_DATA header

function sendPostData($url, $post){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($post))
);
$result = curl_exec($ch);
curl_close($ch); // Seems like good practice
return $result;
}

在文件中使用

<?php

$json_input_data=json_decode(file_get_contents('php://input'),TRUE);

print_r( $json_input_data);


?>

正如大家所说,不需要 $str_data = json_encode($data);,因为数据已经在 json 中。

关于php - 想在php中发送和接收json数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23819405/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com