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高级应的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did30366