php中Curl函数常用的两个例子,登陆/soap
发布:smiling 来源: PHP粉丝网 添加日期:2014-08-27 10:28:11 浏览: 评论:0
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.phpfensi.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);
- }//开源代码phpfensi.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;
- }
Tags: Curl函数 常用例子 登陆soap
- 上一篇:php多线程抓取信息测试例子
- 下一篇:php实现memcache缓存实例详解
相关文章
- ·php利用CURL函数登入163邮箱并获取自己的通讯录(2014-06-17)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)