phppostjson接收
『壹』 用php怎麼接收ajax post過來的json字元串
假設你通過post傳遞過來的欄位名為json.
php代碼
<?php
$res=$_POST['json'];
$new=json_decode($res);
?>
那麼$new 里存的值就是經過解析過的數據了。可以正常使用了。
『貳』 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如何通過Post請求發送Json數據
首先要把數據轉換成json格式,再通過curl方法調用介面並傳參數
代碼如下:
$keyword=urlencode($_POST['keyword']);
$parameters=json_encode(array('keyWord'=>$keyword,'areaCode'=>'*'));
$post_data['appToken']="323ds7674354fds32fdsda60173";//隨便寫的
$post_data['parameters']=$parameters;
$url='http://serde.com/compadddvd/index';//隨便寫的
$ch=curl_init();
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_data);//用post方法傳送參數
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$response=curl_exec($ch);
curl_close($ch);
之後就返回數據即可。
『肆』 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就好
『伍』 php用curl的post方法傳遞json包的時候,接受方是怎麼獲取的呢
假設POST的數據為:{"data":"abc"}
POST參數為:data
同樣以PHP為例,接受並處理請求的相關代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
extract($_POST); // 將數組中的key攤成變數,並導入key對應的值
if (!empty($data))
{
$data = json_decode($data); // json 字元串解碼成 json 數據
var_mp($data); // 列印 json 數據
// 輸出結果
object(stdClass)[1]
public 'data' => string 'abc' (length=3)
}
『陸』 php中通過post請求並接收json數據
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, $uri );
curl_setopt ( $ch, CURLOPT_POST, 1 );//設置為post
curl_setopt ( $ch, CURLOPT_HEADER, 0 );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );//data為post請求的參數
$return = curl_exec ( $ch );//$return為接收到的返回值
curl_close ( $ch );
『柒』 在PHP中怎麼接收post過來的JSON數據
獲取數據,轉成數組就可以使用了啊:
$jsonData=$_POST['jsonData'];//假設變數名為:jsonData
$jsonData=json_decode($jsonData,true);//轉碼為數組
var_mp($jsonData);//該變數的詳情信息
『捌』 煩,PHP接收POST過來的JSON格式數據,內含html實體,無法解析
你接受過的數據用json_decode();處理一下!
至於html實體被轉為代碼的話!並不影響的頁面的顯示!如果你非要處理的話可以用html_entity_decode()來處理,他的功能和操作你可以看http://www.w3school.com.cn/php/func_string_html_entity_decode.asp
$data=$_POST['data'];
$data_arr=json_decode($data,true);//轉為數組
print_r($data_arr);
『玖』 php 怎麼接收前端傳來的json數據
<?php
header("Content-type:text/html;charset=utf-8");
if($_POST){
$d = $_POST['data'];//這里獲取的直接就是數組了,不需要用到json_decode
echo $d['doing'];
//print_r($d);
exit;
}
?>
<script src="js/jquery-1.7.2.min.js"></script>
<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) {//注意jquery的$.post的第2個參數必須是鍵值對形式
alert(res);
});
});
});
</script>
<input id="xx" type="button" value="點擊">
『拾』 php如何發送和接收JSON數據
對於json,PHP有對應的方法進行操作。
一般而言,json會以字元串形式傳給PHP腳本,一般都是放在$_POST裡面,
14
<?php
// 接收
$json_parameter = $_POST['json_str'];
// 處理, 變成數組
$array = json_decode($json_parameter);
// PHP 把數組數據變成json格式字元串,發給頁面
$demo = array(
'key' => 'value',
'key2' => 'value2'
);
$demo_json = json_encode($demo); // 格式是{"key":"value","key2":"value2"}
echo $demo_json;