<?php
//1.初始化
$ch=curl_init();
//2.设置选项,包括URL
$url="http://static.cnbetacdn.com/newsimg/2013/1107/70_1383785654.png_w600.png";//"http://www.php.net"
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//将curl_exec()获取的信息以文件流的形式返回,而不是直接输出
//启用时会将头文件的信息作为数据流输出
curl_setopt($ch,CURLOPT_HEADER,1);
//3.执行并获取HTML文档内容
$output=curl_exec($ch);
if($output===false){ //错误检查
echo "curl Error:".curl_error($ch);
}
$info=curl_getinfo($ch);//获取curl执行后这一请求相关信息
echo '<pre>';
print_r($info);
echo '</pre>';
echo '获取'.$info['url'].'耗时'.$info['total_time'].'秒';
file_put_contents('./test.png',$output);
$size=filesize('./test.png');
if($size!=$info['size_download']){
echo '下载数据不完全';
}else{
echo '下载数据完全';
}
//4.释放curl句柄
curl_close($ch);
//1.初始化
$ch=curl_init();
//2.设置选项,包括URL
$url="http://static.cnbetacdn.com/newsimg/2013/1107/70_1383785654.png_w600.png";//"http://www.php.net"
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//将curl_exec()获取的信息以文件流的形式返回,而不是直接输出
//启用时会将头文件的信息作为数据流输出
curl_setopt($ch,CURLOPT_HEADER,1);
//3.执行并获取HTML文档内容
$output=curl_exec($ch);
if($output===false){ //错误检查
echo "curl Error:".curl_error($ch);
}
$info=curl_getinfo($ch);//获取curl执行后这一请求相关信息
echo '<pre>';
print_r($info);
echo '</pre>';
echo '获取'.$info['url'].'耗时'.$info['total_time'].'秒';
file_put_contents('./test.png',$output);
$size=filesize('./test.png');
if($size!=$info['size_download']){
echo '下载数据不完全';
}else{
echo '下载数据完全';
}
//4.释放curl句柄
curl_close($ch);
//echo $output;
Demo
<?php
$binfo =array('Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; InfoPath.2; AskTbPTV/5.17.0.25589; Alexa Toolbar)','Mozilla/5.0 (Windows NT 5.1; rv:22.0) Gecko/20100101 Firefox/22.0','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET4.0C; Alexa Toolbar)','Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; SV1)',$_SERVER['HTTP_USER_AGENT']);
//伪造头信息header
$cip = '123.125.68.'.mt_rand(0,254);
$xip = '125.90.88.'.mt_rand(0,254);
$header = array(
'CLIENT-IP:'.$cip,
'X-FORWARDED-FOR:'.$xip,
);
function getinfo( $url,$userinfo,$header)
{
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, "$url");
curl_setopt ($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt ($ch, CURLOPT_REFERER, "http://www.baidu.com/");
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_USERAGENT, "$userinfo");
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$contents = curl_exec($ch);
curl_close($ch);
return $contents;
}
$url ='http://www.baidu.com';
$u = $binfo[mt_rand(0,3)];
$con = getinfo($url,$u,$header);
print_r($con) ;exit;
?>
PHP中的数据传输神器cURL
course http://www.imooc.com/learn/132
download http://img.mukewang.com/down/53e1845f00019b0100000000.rar

本文提供了一个使用cURL进行数据传输的PHP示例,详细介绍了如何初始化cURL会话、设置选项(如URL、头信息、代理等)、执行请求以及处理响应数据。同时展示了伪造头部信息的方法,确保请求的多样性和匿名性。
19万+

被折叠的 条评论
为什么被折叠?



