php curl post 時(shí)出現(xiàn)的問題解決
更新時(shí)間:2014年01月30日 23:15:04 作者:
這篇文章主要介紹了php curl post 時(shí)出現(xiàn)問題的解決方法,需要的朋友可以參考下
在 a.php 中以 POST 方式向 b.php 提交數(shù)據(jù),但是 b.php 下就是無法接收到數(shù)據(jù),而 CURL 操作又顯示成功,非常詭異。原來,“傳遞一個(gè)數(shù)組到CURLOPT_POSTFIELDS,cURL會(huì)把數(shù)據(jù)編碼成 multipart/form-data,而然傳遞一個(gè)URL-encoded字符串時(shí),數(shù)據(jù)會(huì)被編碼成 application/x-www-form-urlencoded。
",而和我一樣對(duì) CURL 不太熟悉的人在編寫程序時(shí),代碼往往是下面的樣子:
$data = array( 'Title' => $title, 'Content' => $content, 'ComeFrom' => $comefrom );
curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, false);
curl_setopt($ch, CURLOPT_URL, 'http://example.com/b.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);
也就是將所要提交的數(shù)據(jù)以數(shù)組的形式通過 POST 發(fā)送,而這樣就會(huì)導(dǎo)致 CURL 使用“錯(cuò)誤"的編碼“multipart/form-data",其效果相當(dāng)于我們直接以“<form method="post" action="b.php" enctype="multipart/form-data">"這樣的表單來完成操作,大家可以試試,這時(shí)的“b.php"是無論如何也無法通過 $_POST 來接收數(shù)據(jù)的。
所以,正確的做法應(yīng)該是將上述范例代碼中的 $data 由數(shù)組變?yōu)榻?jīng) urlencode() 編碼后的
",而和我一樣對(duì) CURL 不太熟悉的人在編寫程序時(shí),代碼往往是下面的樣子:
復(fù)制代碼 代碼如下:
$data = array( 'Title' => $title, 'Content' => $content, 'ComeFrom' => $comefrom );
curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, false);
curl_setopt($ch, CURLOPT_URL, 'http://example.com/b.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);
也就是將所要提交的數(shù)據(jù)以數(shù)組的形式通過 POST 發(fā)送,而這樣就會(huì)導(dǎo)致 CURL 使用“錯(cuò)誤"的編碼“multipart/form-data",其效果相當(dāng)于我們直接以“<form method="post" action="b.php" enctype="multipart/form-data">"這樣的表單來完成操作,大家可以試試,這時(shí)的“b.php"是無論如何也無法通過 $_POST 來接收數(shù)據(jù)的。
所以,正確的做法應(yīng)該是將上述范例代碼中的 $data 由數(shù)組變?yōu)榻?jīng) urlencode() 編碼后的
您可能感興趣的文章:
- PHP使用CURL_MULTI實(shí)現(xiàn)多線程采集的例子
- 解析php中curl_multi的應(yīng)用
- php中的curl_multi系列函數(shù)使用例子
- PHP使用curl_multi實(shí)現(xiàn)并發(fā)請(qǐng)求的方法示例
- 關(guān)于PHP的curl開啟問題探討
- php使用curl詳細(xì)解析及問題匯總
- PHP CURL 內(nèi)存泄露問題解決方法
- php5.2的curl-bug 服務(wù)器被php進(jìn)程卡死問題排查
- php中curl和soap方式請(qǐng)求服務(wù)超時(shí)問題的解決
- PHP使用curl_multi_select解決curl_multi網(wǎng)頁(yè)假死問題的方法
相關(guān)文章
php遞歸創(chuàng)建和刪除文件夾的代碼小結(jié)
有時(shí)候需要遞歸創(chuàng)建和刪除文件夾,那么就可以參考下面的代碼2012-04-04php通過pecl方式安裝擴(kuò)展的實(shí)例講解
下面小編就為大家分享一篇php通過pecl方式安裝擴(kuò)展的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-02-02PHP實(shí)現(xiàn)的數(shù)獨(dú)求解問題示例
這篇文章主要介紹了PHP實(shí)現(xiàn)的數(shù)獨(dú)求解問題,涉及php數(shù)組與字符串的遍歷、比較、判斷、運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下2017-04-04PHP實(shí)現(xiàn)抓取HTTPS內(nèi)容
這篇文章主要介紹了PHP實(shí)現(xiàn)抓取HTTPS內(nèi)容,以及遇到的問題的解決方法,需要的朋友可以參考下2014-12-12PHP實(shí)現(xiàn)執(zhí)行外部程序的方法詳解
這篇文章主要介紹了PHP實(shí)現(xiàn)執(zhí)行外部程序的方法,結(jié)合實(shí)例形式分析了php執(zhí)行外部程序的常用函數(shù)相關(guān)使用技巧與注意事項(xiàng),需要的朋友可以參考下2017-08-08php中file_get_contents與curl性能比較分析
這篇文章主要介紹了php中file_get_contents與curl性能比較,以實(shí)例形式詳細(xì)分析了file_get_contents與curl的區(qū)別以及運(yùn)行效率的對(duì)比,需要的朋友可以參考下2014-11-11