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