好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php中Curl函数常用的两个例子,登陆/soap - php高级应

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,HdhCmsTestphpfensi测试数据表单提交   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 );  } //开源代码phpfensi测试数据   //关闭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中Curl函数常用的两个例子,登陆/soap - php高级应的详细内容...

  阅读:49次