加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php中Curl函数常用的示例,登陆/soap

发布时间:2023-07-29 10:12:29 所属栏目:PHP教程 来源:
导读:curl在php中在性能方法要比较其它相同功能函数要高得多,下面我给大家介绍我自己常用的函数一个使用PHP curl 来做登陆后的抓取时使用,一个使用PHP curl来实现soap;我想你会感兴趣.

例子,模拟登陆,代码如下:

/*
curl在php中在性能方法要比较其它相同功能函数要高得多,下面我给大家介绍我自己常用的函数一个使用PHP curl 来做登陆后的抓取时使用,一个使用PHP curl来实现soap;我想你会感兴趣.

例子,模拟登陆,代码如下:

/** 
* 模拟登陆 
* $url 请求地址 
* $post 需要POST的数据 
* $cookie 登陆时取的的COOKIE 
* $cookiejar cookie要存到的位置 例如/tmp/test.cookie 
* $referer 上页地址 

**/ 
function vcurl($url, $post = '', $cookie = '', $cookiejar = '', $referer = ''){ 
$tmpInfo = ''; 
//用来存放cookie的文件 
//初始化curl 
$curl = curl_init(); 
//设定目标网址 
curl_setopt($curl, CURLOPT_URL, $url); 
//使用目前所用的浏览器代理 
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
//curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); 
//如果有Ref参数,则设置Referer头,否则自动设置Referer头 
if($referer) { 
curl_setopt($curl, CURLOPT_REFERER, $referer); 
} else { 
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); 

//如果有post数据参数,则方法为POST,并且设置数据,否则为GET 
if($post) { 
//发送一个常规的POST请求,默认类型为:application/x-www-form-urlencoded,www.Cuoxin.com表单提交 
curl_setopt($curl, CURLOPT_POST, 1); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $post); 

//如果有cookie参数,则设置 
if($cookie) { 
curl_setopt($curl, CURLOPT_COOKIE, $cookie); 

//如果有cookie文件参数,则设置存取Cookie文件名 
if($cookiejar) { 
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookiejar); 
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookiejar); 

//如果是302转移,则返回转移后的网址及内容 
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); 
//设置执行的最大秒数 
curl_setopt($curl, CURLOPT_TIMEOUT, 100); 
//返回内容中是否包含头信息 
curl_setopt($curl, CURLOPT_HEADER, 0); 
//把返回的结果存在文件或者变量中,而不是直接显示在浏览器 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
//执行函数后的返回结果 
$tmpInfo = curl_exec($curl); 
//如果出错,显示错误信息 
if (curl_errno($curl)) { 
$tmpInfo = '<pre><b>错误:</b><br />'.curl_error($curl); 
}//开源代码Cuoxin.com 
//关闭curl对象 
curl_close($curl); 
//返回结果 
return $tmpInfo; 

例子,soap代码如下:

function vcurlsoap($url, $SoapRequest, $SoapAction) { 
$ch = curl_init (); //initiate the curl session 
curl_setopt ( $ch, CURLOPT_URL, $url ); //set to url to post to 
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 ); // return data in a variable 
curl_setopt ( $ch, CURLOPT_HEADER, 0 ); 
curl_setopt ( $ch, CURLOPT_POST, 1 ); 
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $SoapRequest ); // post the xml 
curl_setopt ( $ch, CURLOPT_TIMEOUT, 60 ); // set timeout in seconds 
curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, 0 ); 
$header = array ("Content-Type: text/xml" ); 
$header [] = "Content-Length: ".strlen($SoapRequest); 
if (! is_null ( $SoapAction )) 
$header [] = 'SOAPAction: "' . $SoapAction . '"'; 
curl_setopt ( $ch, CURLOPT_HTTPHEADER, $header ); 
$xmlResponse = curl_exec ( $ch ); 
curl_close ( $ch ); 
return $xmlResponse; 

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章