本文實例講述了PHP基于curl post實現(xiàn)發(fā)送url及相關中文亂碼問題解決方法。分享給大家供大家參考,具體如下:
這個問題困擾我?guī)滋炝?,發(fā)送的指定網(wǎng)址的url參數(shù),中文總是亂碼,指定網(wǎng)址是utf8編碼的,我發(fā)送的也是utf8編碼的。但是還是亂碼,開始用的file_get_contents,后來換成curl并在php.ini中開啟了php_curl,還是不行,又加了header終于解決。代碼如下:
$url = 'http://'; //調(diào)用接口的平臺服務地址
$post_string = array('a'=>'b');
$ch = curl_init();
$this_header = array(
"content-type: application/x-www-form-urlencoded;
charset=UTF-8"
);
curl_setopt($ch,CURLOPT_HTTPHEADER,$this_header);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$result = curl_exec($ch);
if($result)
echo "script>\nalert(\"同步成功! \");\n/script>";
curl_close($ch);
總結:解決此類編碼問題,首先,要確認兩個地方的編碼是什么,其次,如果編碼相同那么可以直接發(fā)送,使用curl需要加header設置charset,最后,多查多試,一種方法不行再換另一個試試,如果都不行,那么就從頭再考慮一遍問題,總能解決的。
PS:這里將content-type設置為:application/x-www-form-urlencoded;
本站前面一篇https://www.jb51.net/article/129039.htm針對content-type的原理與設置方法做了較為詳盡的說明,有助于讀者進一步加深理解。
更多關于PHP相關內(nèi)容感興趣的讀者可查看本站專題:《php curl用法總結》、《PHP網(wǎng)絡編程技巧總結》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結》、《PHP數(shù)據(jù)結構與算法教程》、《php程序設計算法總結》、《PHP運算與運算符用法總結》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
您可能感興趣的文章:- PHP如何使用cURL實現(xiàn)Get和Post請求
- PHP中使用CURL發(fā)送get/post請求上傳圖片批處理功能
- PHP使用curl請求實現(xiàn)post方式上傳圖片文件功能示例
- PHP基于curl模擬post提交json數(shù)據(jù)示例
- PHP中的使用curl發(fā)送請求(GET請求和POST請求)
- 詳解php用curl調(diào)用接口方法,get和post兩種方式
- PHP的CURL方法curl_setopt()函數(shù)案例介紹(抓取網(wǎng)頁,POST數(shù)據(jù))
- PHP使用curl函數(shù)發(fā)送Post請求的注意事項
- 淺談PHP模擬發(fā)送POST請求之curl基本使用