您的位置:首页 > 运维架构

curl获取结果乱码的解决方法之CURLOPT_ENCODING(curl/Post请求)

2016-03-21 15:48 344 查看
//php脚本开始
 
/*POST请求远程内容函数*/
 
function
 
ppost(
$url
,
$data
,
$ref
){ 
//
模拟提交数据函数
 
    
$curl
 
=
curl_init(); 
//
启动一个CURL会话
 
    
curl_setopt(
$curl
,
CURLOPT_URL, 
$url
); 
//
要访问的地址           
 
    
curl_setopt(
$curl
,
CURLOPT_SSL_VERIFYPEER, 0); 
//
对认证证书来源的检查
 
    
curl_setopt(
$curl
,
CURLOPT_SSL_VERIFYHOST, 1); 
//
从证书中检查SSL加密算法是否存在
 
    
curl_setopt(
$curl
,
CURLOPT_USERAGENT, 
$_SERVER
[
'HTTP_USER_AGENT'
]); 
//
模拟用户使用的浏览器
 
    
curl_setopt(
$curl
,
CURLOPT_FOLLOWLOCATION, 1); 
//
使用自动跳转
 
    
curl_setopt(
$curl
,
CURLOPT_REFERER, 
$ref
);
 
    
curl_setopt(
$curl
,
CURLOPT_POST, 1); 
//
发送一个常规的Post请求
 
    
curl_setopt(
$curl
,
CURLOPT_POSTFIELDS, 
$data
); 
//
Post提交的数据包
 
    
curl_setopt(
$curl
,
CURLOPT_COOKIEFILE,
$GLOBALS
 
[
'cookie_file'
]); 
//
读取上面所储存的Cookie信息
 
    
curl_setopt(
$curl
,
CURLOPT_COOKIEJAR, 
$GLOBALS
[
'cookie_file'
]); 
//
存放Cookie信息的文件名称
  
 
    
curl_setopt(
$curl
,
CURLOPT_HTTPHEADER,
array
(
'Accept-Encoding:
gzip, deflate'
));
 
    
curl_setopt(
$curl
,
CURLOPT_ENCODING, 
'gzip,deflate'
);这个是解释gzip内容.................
 
    
curl_setopt(
$curl
,
CURLOPT_TIMEOUT, 30); 
//
设置超时限制防止死循环
 
    
curl_setopt(
$curl
,
CURLOPT_HEADER, 0); 
//
显示返回的Header区域内容
 
    
curl_setopt(
$curl
,
CURLOPT_RETURNTRANSFER, 1); 
//
获取的信息以文件流的形式返回
 
    
$tmpInfo
 
=
curl_exec(
$curl
); 
//
执行操作
 
    
if
 
(curl_errno(
$curl
))
{
 
       
echo
 
'Errno'
.curl_error(
$curl
);
 
    
}
 
    
curl_close(
$curl
); 
//
关键CURL会话
 
    
return
 
$tmpInfo
//
返回数据
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: