重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
用curl
成都創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、營山網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、購物商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為營山等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
$ch = curl_init();
$header[] = "Content-type: text/xml";//定義content-type為xml
curl_setopt($ch, CURLOPT_URL, $url); //定義表單提交地址
curl_setopt($ch, CURLOPT_POST, 1); //定義提交類型 1:POST ;0:GET
curl_setopt($ch, CURLOPT_HEADER, 1); //定義是否顯示狀態(tài)頭 1:顯示 ; 0:不顯示
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);//定義請求類型
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);//定義是否直接輸出返回流
curl_setopt($ch, CURLOPT_POSTFIELDS, $postStr); //定義提交的數(shù)據(jù),這里是XML文件
$res = curl_exec($ch);
curl_close($ch);//關(guān)閉
//采集的信息需要先登錄的就要先模擬登錄
//設(shè)置cookie保存路徑
$ch?=?curl_init();
//組裝用戶名和密碼
$info['username']?=?$this-username;
$info['password']?=?$this-pwd;
//模擬表單提交
$params[CURLOPT_URL]?=?$this-url;????//請求url地址
$params[CURLOPT_HEADER]?=?true;?//是否返回響應(yīng)頭信息
$params[CURLOPT_RETURNTRANSFER]?=?true;?//是否將結(jié)果返回
$params[CURLOPT_FOLLOWLOCATION]?=?true;?//是否重定向
//?$params[CURLOPT_SSL_VERIFYPEER]?=?true;?//?https請求?不驗證證書和hosts
//?$params[CURLOPT_SSL_VERIFYHOST]?=?true;?//?https請求?不驗證證書和hosts
$params[CURLOPT_USERAGENT]?=?'Mozilla/5.0?(Windows?NT?5.1;?rv:9.0.1)?Gecko/20100101?Firefox/9.0.1';
$postfields?=?'';
//將表單要提交的數(shù)據(jù)編程URL拼接方式
foreach?($info?as?$key?=?$value){
$postfields?.=?urlencode($key)?.?'='?.?urlencode($value)?.?'';
}
$params[CURLOPT_POST]?=?true;
$params[CURLOPT_POSTFIELDS]?=?$postfields;
//判斷是否有cookie,有的話直接使用
/*
if?(isset($_COOKIE['cookie_jar'])($_COOKIE['cookie_jar']||is_file($_COOKIE['cookie_jar']))){
$params[CURLOPT_COOKIEFILE]?=?$_COOKIE['cookie_jar'];?//這里判斷cookie
}else{
$cookie_jar?=?tempnam($this-cookie_path,?'cookie');?//產(chǎn)生一個cookie文件
$params[CURLOPT_COOKIEJAR]?=?$cookie_jar;?//寫入cookie信息
setcookie('cookie_jar',?$cookie_jar);?//保存cookie路徑
}
*/
curl_setopt_array($ch,?$params);?//傳入curl參數(shù)
$content?=?curl_exec($ch);?//執(zhí)行
首先要把數(shù)據(jù)轉(zhuǎn)換成json格式,再通過curl方法調(diào)用接口并傳參數(shù)
代碼如下:
$keyword?=?urlencode($_POST['keyword']);
$parameters?=?json_encode(array('keyWord'=$keyword,'areaCode'='*'));
$post_data['appToken']?=?"323ds7674354fds32fdsda60173";//隨便寫的
$post_data['parameters']?=?$parameters;
$url?=?'';//隨便寫的
$ch?=?curl_init();
curl_setopt($ch,?CURLOPT_POST,?1);
curl_setopt($ch,?CURLOPT_URL,?$url);
curl_setopt($ch,?CURLOPT_POSTFIELDS,?$post_data);//用post方法傳送參數(shù)
curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?1);
$response?=?curl_exec($ch);
curl_close($ch);
之后就返回數(shù)據(jù)即可。
你傳送之前
alert(json.key)
看一下有沒有變?yōu)檎_json數(shù)據(jù)。
也可以這樣
for(var
i
in
json){
alert(i+":"+json[i]);
}
只要將json數(shù)據(jù)用引號引起來作為字符串傳遞給PHP【通常用ajax進行】就可以用json_decode函數(shù)解碼了。沒錯!就是這樣!但是在構(gòu)造json字符串的時候一定要仔細,如果你不經(jīng)常構(gòu)造json字符串,那么不妨用
echo json_encode(array('k'=array("a"='1','2','3')))
這樣的方式,查看你需要構(gòu)造的目標字符串的json格式。這樣你就可以在js中根據(jù)你想要的結(jié)果來構(gòu)造了!