PHP的curl常用的5个例子
发布时间:2020-05-26 01:19:42 所属栏目:PHP 来源:互联网
导读:PHP的curl常用的5个例子
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 原文 http://www.phpxs.com/post/43531,抓取无访问控制文件
<?php
$ch= curl_init();
curl_setopt($ch,CURLOPT_URL,"http://localhost/mytest/phpinfo.php");
curl_setopt($ch,CURLOPT_HEADER,false);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//如果把这行注释掉的话,就会直接输出
$result=curl_exec($ch);
curl_close($ch);
?>
2,使用代理进行抓取
<?php
$ch= curl_init();
curl_setopt($ch,"http://blog.51yip.com");
curl_setopt($ch,1);
curl_setopt($ch,CURLOPT_HTTPPROXYTUNNEL,TRUE);
curl_setopt($ch,CURLOPT_PROXY,125.21.23.6:8080);
//url_setopt($ch,CURLOPT_PROXYUSERPWD,'user:password');如果要密码的话,加上这个
$result=curl_exec($ch);
curl_close($ch);
?>
3,post数据后,抓取数据
<?php
$ch= curl_init();
/*在这里需要注意的是,要提交的数据不能是二维数组或者更高
*例如array('name'=>serialize(array('tank','zhang')),'sex'=>1,'birth'=>'20101010')
*例如array('name'=>array('tank','zhang'),'birth'=>'20101010')这样会报错的*/
$data=array('name'=>'test','birth'=>'20101010');
curl_setopt($ch,'http://localhost/mytest/curl/upload.php');
curl_setopt($ch,CURLOPT_POST,CURLOPT_POSTFIELDS,$data);
curl_exec($ch);
?>
4,抓取一些有页面访问控制的页面
<?php
$ch= curl_init();
curl_setopt($ch,"http://club-china");
/*CURLOPT_USERPWD主要用来破解页面访问控制的
*例如平时我们所以htpasswd产生页面控制等。*/
//curl_setopt($ch,CURLOPT_USERPWD,'231144:2091XTAjmd=');
curl_setopt($ch,CURLOPT_HTTPGET,CURLOPT_REFERER,"http://club-china");
curl_setopt($ch,0);
$result=curl_exec($ch);
curl_close($ch);
?>
5,模拟登录到sina<?php
functionchecklogin($user,$password)
{
if( emptyempty($user) || emptyempty($password) )
{
return0;
}
$ch= curl_init( );
curl_setopt($ch,"http://mail.sina.com.cn/index.html");
curl_setopt($ch,true );
curl_setopt($ch,CURLOPT_USERAGENT,USERAGENT );
curl_setopt($ch,CURLOPT_COOKIEJAR,COOKIEJAR );
curl_setopt($ch,CURLOPT_TIMEOUT,TIMEOUT );
curl_setopt($ch,"http://mail.sina.com.cn/cgi-bin/login.cgi");
curl_setopt($ch,"&logintype=uid&u=".urlencode($user)."&psw=".$password);
$contents= curl_exec($ch);
curl_close($ch);
if( !preg_match("/Location: (.*)/cgi/index.php?check_time=(.*)n/",$contents,$matches) )
{
return0;
}else{
return1;
}
}
define("USERAGENT",$_SERVER['HTTP_USER_AGENT'] );
define("COOKIEJAR",tempnam("/tmp","cookie") );
define("TIMEOUT",500 );
echochecklogin("zhangying215","xtaj227");
?>
打开/tmp下面的cookie文件看一下
# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.
mail.sina.com.cn FALSE / FALSE 0 SINAMAIL-WEBFACE-SESSID 65223c4bd8900284ed463d2a3e1ac182
#HttpOnly_.sina.com.cn TRUE / FALSE 0 SUE es%3D8d96db0820c6c79922ad57d422f575e8%26ev%3Dv0%26es2%3Dcddfb8400dc5ca95902367ddcd7f57dd
.sina.com.cn TRUE / FALSE 0 SUP cv%3D1%26bt%3D1286900433%26et%3D1286986833%26lt%3D1%26uid%3D1445632344%26user%3D%25E5%25BC%25A0%25E6%2598%25A02001%26ag%3D2%26name%3Dzhangying20015%2540sina.com%26nick%3D%25E5%25BC%25A0%25E6%2598%25A02001%26sex%3D1%26ps%3D0%26email%3Dzhangying20015%2540sina.com%26dob%3D1982-07-18
#HttpOnly_.sina.com.cn TRUE / FALSE 0 SID BihcallomxMx-QZxzGrOlcSQx%2F0B%2F0cmr.NyQ%2F0B%2FcmGGalmarlmcHrcGlSmrmxmfxal_CBZ%2F_afugCmmGirBYHm0Bc%40fr5ciZiGG5i
#HttpOnly_.sina.com.cn TRUE / FALSE 0 SPRIAL bfb4102951fd5892a3fd5b42d442cd26
#HttpOnly_.sina.com.cn TRUE / FALSE 0 SINA_USER %D5%C5%D2001
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
