在 php curl返回

2025-01-02 11:02:14
推荐回答(4个)
回答1:

给你个我写的curl方法。

/**
 * curl模拟提交
 * @param string $url 网址
 * @param array/string $opt 提交参数
 * @param string &$header 取回的头信息
 * @param string $redirect 是否重定向
 * @param boolean $ssl 验证https证书
 * @return [type] 返回信息
 */
function curl($url, $opt='GET', &$header=null, $redirect=true, $ssl=false){

//初始化
$ch = curl_init($url);

//配置设置
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $ssl);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, $ssl);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, $redirect);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); #返回结果
curl_setopt($ch, CURLOPT_HEADER, true); #显示协议头

if(is_array($opt)){

//转小写
$opt = array_change_key_case($opt, CASE_LOWER);

//POST
if(isset($opt['type']) && strtoupper($opt['type'])=='POST'){
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, (isset($opt['data']) ? $opt['data'] : ''));
}

//User-Agent
if(array_key_exists('ua', $opt))
curl_setopt($ch, CURLOPT_USERAGENT, $opt['ua']);

//Header
if(array_key_exists('header', $opt)){
curl_setopt($ch, CURLOPT_HTTPHEADER, (array)$opt['header']);
}

//Cookie
if(array_key_exists('cookie', $opt))
curl_setopt($ch, CURLOPT_COOKIE, $opt['cookie']);

//Referer
if(array_key_exists('referer', $opt))
curl_setopt($ch, CURLOPT_REFERER, $opt['referer']);

}else{

//仅POST
if(strtoupper((string)$opt) == 'POST')
curl_setopt($ch, CURLOPT_POST, true);

}

$result = curl_exec($ch);

if(curl_errno($ch)){
$result = curl_error($ch);
}else{

//获取头长度
$length = curl_getinfo($ch, CURLINFO_HEADER_SIZE);

//取出头信息
$header = substr($result, 0, $length);

//去掉头信息
$result = substr($result, $length);

}

//释放
curl_close($ch);

return $result;

}

回答2:

楼主,你的问题是啥?从你贴的文字看这是一段Header信息。

回答3:

获取对应的 header 信息。你是要做什么

回答4:

明显是header信息, 你curl 方法有问题.