導航:首頁 > 編程語言 > php獲取postjson數據

php獲取postjson數據

發布時間:2025-04-16 08:10:53

A. PHP使用POST傳遞json數據的接收與處理問題

前端傳給伺服器的只是json 格式的字元串,使用json_decode,
mixed json_decode ( string $json [, bool $assoc ] )

var_mp(json_decode($json));
var_mp(json_decode($json, true));
如果不帶參數,則返回為對象
帶上true時,內返回數組

foreach($ARR as $k=>$v){
echo 'key='.$k.';value='.$v;
}
單獨處理容每個key 和對應的value就好

B. 後端php那裡接收到前端post給的json為什麼會是轉義字元串格式

1,有可能框架對整個參數,進行了轉義,反轉義一遍即可

2,有可能開啟了PHP的自動過濾功能,在php.ini中關閉即可

magic_quotes_gpc=On改為magic_quotes_gpc=Off

C. 在PHP中怎麼接收post過來的JSON數據

在PHP中接收POST過來的JSON數據,通常有兩種方式。一種是直接使用file_get_contents函數獲取原始數據,然後利用json_decode將JSON字元串轉換為PHP數組或對象。例如:file_get_contents('php://input');獲取數據後,使用json_decode(file_get_contents('php://input'), true)進行解碼。另一種方式是通過$_POST超全局變數接收,這種方式需要在發送請求時設置Content-Type為application/json。例如:$_POST['data'],但這種方式並不推薦,因為$_POST通常用於接收表單數據。

下面是一個完整的示例,展示如何在PHP中處理POST過來的JSON數據:

首先,假設前端使用javaScript發送JSON數據,代碼如下:

JavaScript代碼示例:

function sendData() {
var data = {'zhangsan':'lisi', 'age':18};
var xhr = new XMLHttpRequest();
xhr.open('POST', '/path/to/php/script', true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
console.log(xhr.responseText);
}
};
xhr.send(JSON.stringify(data));
}

然後在PHP中接收並處理這些數據:

PHP代碼示例:

<?php
$jsonData = file_get_contents('php://input');
$data = json_decode($jsonData, true);
echo "接收到的數據:";
print_r($data);
?>

上面的PHP代碼首先使用file_get_contents('php://input')獲取原始數據,然後通過json_decode將其轉換為PHP數組。接著,使用print_r輸出數據內容。

這種方式不僅適用於POST請求,也適用於其他HTTP方法。通過這種方式,PHP能夠靈活地處理不同來源和格式的數據,增強應用的通用性和可維護性。

D. php怎麼接收json類型數據

PHP接收JSON格式的數據
在API服務中,目前流行採用json形式來交互。
給前端調用的介面輸出Json數據,這個比較簡單,只需要組織好數據,用json_encode($array) 轉化一下,前端就得到json格式的數據。
接收前端提交的json數據稍微復雜一點,原因是:PHP默認識別的數據類型是application/x-www.form-urlencoded標準的數據類型。因此,對型如text/xml 或者 soap 或者 application/octet-stream 和application/json格式之類的內容無法解析,如果用$_POST數組來接收就會失敗!
此時可以使用$GLOBALS['HTTP_RAW_POST_DATA'] 或 file_get_contents('php://input') 來獲取提交的數據
查看手冊,可以發現$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST的區別:
$_POST:通過 HTTP POST 方法傳遞的變數組成的數組,是自動全局變數。
$GLOBALS['HTTP_RAW_POST_DATA'] :總是產生 $HTTP_RAW_POST_DATA 變數包含有原始的 POST 數據。此變數僅在碰到未識別 MIME 類型的數據時產生。$HTTP_RAW_POST_DATA 對於 enctype="multipart/form-data" 表單數據不可用。也就是說基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一樣的。但是如果post過來的數據不是PHP能夠識別的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']來接收,比如 text/xml 或者 soap 等等。
補充說明:PHP默認識別的數據類型是application/x-www.form-urlencoded標準的數據類型。

E. php傳過來的json數據js怎麼調用

<?php
header("Content-type:text/html;charset=utf-8");
if($_POST){
$d = $_POST['data'];//這里獲取的直接就是數組了,不需要用到json_decode
echo $d['doing'];
//print_r($d);
exit;
}
?>
JS部分代碼:
<script type="text/javascript">
$(document).ready(function() {
$("#xx").click(function(){
var url = "test.php";
var str ="{'doing':'createvote','type':'type','num':'num','votetheme':'votetheme','creater':'loginname'}";//json格式字元串
var data = eval('('+str+')');//轉換成數組對象,不加這步,那麼PHP獲取的是字元串。
$.post(url, {'data': data}, function(res) {
alert(res);
});
});
});
</script>

<input id="xx" type="button" value="點擊">

F. php 通過curl傳遞的json數據如何獲取

你將$hello直接解析成了jsons 如果伺服器端要接收。 你可以在
$hello=json_en......;下一行加上
$data=array('hello'=>$hello);
將curl_setopt($ch,CURLOPT_POSTFIELDS,$hello);改成版curl_setopt($ch,CURLOPT_POSTFIELDS,$data);

在URL端你可以用權var_mp($_POST);

G. 如何用php調用外部介面json數據

一般使用php發送請求,獲取返回的數據,進行解析;
<?php
$url="介面地址";
//發送請求獲取返回值,file_get_contents只支持get請求,post使用curl
$json = file_get_contents($url);
//把json數據轉化成數組
$data = json_decode($json,true);
//列印看看
print_r($data);
?>

閱讀全文

與php獲取postjson數據相關的資料

熱點內容
cad為什麼打不開安裝文件 瀏覽:353
mac系統刪除win10系統文件 瀏覽:48
cmf游戲文件 瀏覽:139
word2013批註內容全部 瀏覽:687
游粉淘這網站怎麼樣 瀏覽:257
數控程序g41g42怎麼編程 瀏覽:62
抖音里邊轉發的文件到哪裡了 瀏覽:437
有雙微信功能的手機 瀏覽:466
不用網路也能上網嗎 瀏覽:247
mysql資料庫的url地址 瀏覽:12
如何復制文件夾中的多個文件名 瀏覽:52
馮諾依曼數據存在在什麼中 瀏覽:16
多份文件部分內容遭塗黑遮去 瀏覽:133
哪些質量管理活動需要形成文件 瀏覽:521
如何適應大數據時代心得 瀏覽:146
什麼是名目數據 瀏覽:457
文件夾標注 瀏覽:243
swfupload選擇單個文件 瀏覽:136
blocks提示找不到頭文件 瀏覽:761
在哪裡能編程C語言 瀏覽:425

友情鏈接