『壹』 thinkphp後台發送的json,前台的js里怎麼接收
如果你會用jquery,那我還可以幫到你。jquery裡面有很多種ajax的方法,我舉個簡單的$.post方法,這是用ajax提交數據,提交數據的形式是post。
$.post('index.php','',function(data){
alert(data);
});
其中index.php是你後台發送json數據的php文件,function裡面的data參數則是php文件返回的json數據,一般是echo 出來的json數據,第二個參數是用來傳遞參數給index.php的
『貳』 php通過curl發送post json給https產生502錯誤問題!
curl_setopt(self::$ch,CURLOPT_USERAGENT,"Mozilla/5.0(Macintosh;IntelMacOSX10_10_2)AppleWebKit/600.3.18(KHTML,likeGecko)Version/8.0.3Safari/600.3.18");
加一個這個參數模擬瀏覽器,看看有沒有作用
有些伺服器非瀏覽器訪問就會502
『叄』 php鎬庝箞鑾峰彇榪滅▼JSon鍐呭 騫秔ost涓浜涘弬鏁
$data = file_get_contents($url);//鐩鐨勯〉闈㈠唴瀹歸傜矖鑾峰彇
$t = json_decode($data,1);//杞鎹涓篜HP鏁扮粍
//澶勭悊...
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $urlo);//鏁版嵁鍦嗙ゥ鍙戦佸湴鍧
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);//姍樻ū鎼忓彂閫佺殑鏁版嵁鏁扮粍
curl_exec($ch);
『肆』 璇鋒暀涓涓狿HP CURL鐨凱OST鎻愪氦閬囧埌鐨勯棶棰
緇欎綘涓涓鎬濊礬,浣跨敤http浠f浛https,鐒跺悗鎶撳寘,鐪嬩竴涓媓ttp璇鋒眰鍒頒貢鎼搴曟湁浠涔堜笉鍚.
鍙﹀,CURLOPT_SSL_VERIFYHOST瀹樻柟鏂囨。鏈夎存槑:
紱佺敤鍚巆URL灝嗙粓姝浠庢湇鍔$榪涜岄獙璇併備嬌鐢–URLOPT_CAINFO閫夐」璁劇疆璇佷功浣跨敤CURLOPT_CAPATH閫夐」璁劇疆璇佷功鐩褰
濡傛灉CURLOPT_SSL_VERIFYPEER(榛樿ゅ間負2)琚鍚鍝椾簭鎷跨敤錛孋URLOPT_SSL_VERIFYHOST闇瑕佽璁劇疆鎴怲RUE鍚﹀垯璁劇疆涓
FALSE銆
鎵浠ラ栧厛浣犵殑CURLOPT_SSL_VERIFYPEER鏄璁劇疆涓篺alse鐨,鎵浠CURLOPT_SSL_VERIFYHOST涔熻佷負false
榪樻湁, 鎴戠湅璇鋒眰璁よ瘉騫朵笉鏄浣跨敤http auth, 浣犱負浠涔堟坊鍔燾url_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
鏈鍚,瀹樻柟鏂囨。瀵逛簬CURLOPT_POSTFIELDS鐨勮В閲
濡傛灉value鏄涓涓鏁扮粍錛孋ontent-Type澶村皢浼氳璁劇疆鎴恗ultipart/form-data
鑰屾帴鍙f枃妗d腑鏄庣『璇存槑
璇鋒眰鎺ュ彛(寤鴻浣跨敤post璇鋒眰錛屾敞鎰忎笉瑕佷嬌鐢╩ultipart-post)錛
鎵浠ヤ綘鍙浠ュ皾璇
curl_setopt($ch,CURLOPT_POSTFIELDS, http_build_query($data));
鏈鍚庣殑鏈鍚,璇曡瘯涓嬮潰鐨勪唬鐮:
<?php
header('Content-Type:text/html;charset=utf-8');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://sendcloud.sohu.com/webapi/list.create.json');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = array(
'api_user' => '*',
'api_key' => '*',
'address' => '[email protected]',
'name' => 'Abao鏂板緩鐨勬祴璇曢偖浠跺垪琛',
'description' => '榪欐槸Abao鏂板緩鐨勭┖琛嫻嬭瘯閭浠跺垪琛',
);
curl_setopt($ch,CURLOPT_POSTFIELDS, http_build_query($data));
if(false === $result=curl_exec($ch)) {
echo 'false:<br />';
}
var_mp(json_decode($result,true));
curl_close($ch);
『伍』 如何用php調用外部介面json數據
兩種比較簡單的方法:
1、使用curl
$url="http://www.xxxxxxxxxx.com/";
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_TIMEOUT,30);
$output=curl_exec($ch);
curl_close($ch);
echo$output;
2、使用file_get_contents
$output=file_get_contents($url);
echo$output;
3 、使用socket 也是可以的
『陸』 如何用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使用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如何發送和接收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;
『玖』 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為什麼會是轉義字元串格式
1,有可能框架對整個參數,進行了轉義,反轉義一遍即可
2,有可能開啟了PHP的自動過濾功能,在php.ini中關閉即可
magic_quotes_gpc=On改為magic_quotes_gpc=Off