加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php里Curl函数常用的两个例子,登陆 soap

发布时间:2022-02-10 20:29:57 所属栏目:PHP教程 来源:互联网
导读:curl在php中在性能方法要比较其它相同功能函数要高得多,下面我给大家介绍我自己常用的函数一个使用PHP curl 来做登陆后的抓取时使用,一个使用PHP curl来实现soap;我想你会感兴趣. 例子,模拟登陆,代码如下: /** * 模拟登陆 * $url 请求地址 * $post 需要PO
  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;
  }
  

(编辑:PHP编程网 - 黄冈站长网)

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

    热点阅读