php curl模擬post請(qǐng)求和提交多維數(shù)組的示例代碼
下面一段代碼給大家介紹php curl模擬post請(qǐng)求的示例代碼,具體代碼如下:
<?php $uri = "http://www.cnblogs.com/test.php";//這里換成自己的服務(wù)器的地址 // 參數(shù)數(shù)組 $data = array ( 'name' => 'tanteng' // 'password' => 'password' ); $ch = curl_init (); // print_r($ch); curl_setopt ( $ch, CURLOPT_URL, $uri ); curl_setopt ( $ch, CURLOPT_POST, 1 ); curl_setopt ( $ch, CURLOPT_HEADER, 0 ); curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data ); $return = curl_exec ( $ch ); curl_close ( $ch ); print_r($return);
2,遠(yuǎn)程服務(wù)器:
<?php
if(isset($_POST['name'])){
if(!empty($_POST['name'])){
echo '您好,',$_POST['name'].'!';
}
}
下面給大家介紹php中curl模擬post提交多維數(shù)組。
今天需要用curl模擬post提交參數(shù),請(qǐng)求同事提供的一個(gè)接口;但是傳遞的參數(shù)中,有一個(gè)參數(shù)的值為數(shù)組,用普通的curl post代碼提交,會(huì)報(bào)錯(cuò)誤
PHP Notice: Array to string conversion in /test/functions.php on line 30
Notice: Array to string conversion in /test/functions.php on line 30
代碼如下:
<?php
$param = array(
'uid' => 123,
'uids' => array(12,455),
'msgType' => 'WITH',
'nick' => 'aaa',
);
$url = "http://cx.com/t.php";
//通過(guò)curl的post方式發(fā)送接口請(qǐng)求
SendDataByCurl($url,$param);
//通過(guò)curl模擬post的請(qǐng)求;
function SendDataByCurl($url,$data=array()){
//對(duì)空格進(jìn)行轉(zhuǎn)義
$url = str_replace(' ','+',$url);
$ch = curl_init();
//設(shè)置選項(xiàng),包括URL
curl_setopt($ch, CURLOPT_URL, "$url");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch,CURLOPT_TIMEOUT,3); //定義超時(shí)3秒鐘
// POST數(shù)據(jù)
curl_setopt($ch, CURLOPT_POST, 1);
// 把post的變量加上
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
//執(zhí)行并獲取url地址的內(nèi)容
$output = curl_exec($ch);
//釋放curl句柄
curl_close($ch);
return $output;
}
經(jīng)過(guò)修改上面代碼,可以完成提交數(shù)組的功能,而不會(huì)報(bào)php notice,代碼如下:
//通過(guò)curl模擬post的請(qǐng)求;
function SendDataByCurl($url,$data=array()){
//對(duì)空格進(jìn)行轉(zhuǎn)義
$url = str_replace(' ','+',$url);
$ch = curl_init();
//設(shè)置選項(xiàng),包括URL
curl_setopt($ch, CURLOPT_URL, "$url");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch,CURLOPT_TIMEOUT,3); //定義超時(shí)3秒鐘
// POST數(shù)據(jù)
curl_setopt($ch, CURLOPT_POST, 1);
// 把post的變量加上
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); //所需傳的數(shù)組用http_bulid_query()函數(shù)處理一下,就ok了
//執(zhí)行并獲取url地址的內(nèi)容
$output = curl_exec($ch);
$errorCode = curl_errno($ch);
//釋放curl句柄
curl_close($ch);
if(0 !== $errorCode) {
return false;
}
return $output;
}
- php curl批處理實(shí)現(xiàn)可控并發(fā)異步操作示例
- PHP curl 并發(fā)最佳實(shí)踐代碼分享
- php使用curl并發(fā)減少后端訪問(wèn)時(shí)間的方法分析
- php cURL和Rolling cURL并發(fā)方式比較
- PHP使用curl_multi實(shí)現(xiàn)并發(fā)請(qǐng)求的方法示例
- PHP中使用cURL實(shí)現(xiàn)Get和Post請(qǐng)求的方法
- php之curl實(shí)現(xiàn)http與https請(qǐng)求的方法
- php curl請(qǐng)求信息和返回信息設(shè)置代碼實(shí)例
- php curl 獲取https請(qǐng)求的2種方法
- PHP curl批處理及多請(qǐng)求并發(fā)實(shí)現(xiàn)方法分析
相關(guān)文章
ThinkPHP結(jié)合AjaxFileUploader實(shí)現(xiàn)無(wú)刷新文件上傳的方法
這篇文章主要介紹了ThinkPHP結(jié)合AjaxFileUploader實(shí)現(xiàn)無(wú)刷新文件上傳的方法,是ThinkPHP文件上傳中一個(gè)比較典型的應(yīng)用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-10-10
ThinkPHP使用Smarty第三方插件方法小結(jié)
這篇文章主要介紹了ThinkPHP使用Smarty第三方插件方法,結(jié)合實(shí)例形式總結(jié)分析了ThinkPHP使用Smarty模板的具體步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-03-03
在Laravel 的 Blade 模版中實(shí)現(xiàn)定義變量
今天小編就為大家分享一篇在Laravel 的 Blade 模版中實(shí)現(xiàn)定義變量,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
Smarty foreach控制循環(huán)次數(shù)的一些方法
這篇文章主要介紹了Smarty foreach控制循環(huán)次數(shù)的一些方法,本文同時(shí)總結(jié)了一部分獲取當(dāng)前次數(shù)的方法,需要的朋友可以參考下2015-07-07

