Heim > php教程 > php手册 > php中Curl函数常用的两个例子,登陆/soap

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

WBOY
Freigeben: 2016-05-25 16:40:19
Original
1892 Leute haben es durchsucht

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

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

<?php
/** 
 * 模拟登陆
 * $url 请求地址
 * $post 需要POST的数据
 * $cookie 登陆时取的的COOKIE
 * $cookiejar cookie要存到的位置 例如/tmp/test.cookie
 * $referer 上页地址
 *
 *
 */
function vcurl($url, $post = &#39;&#39;, $cookie = &#39;&#39;, $cookiejar = &#39;&#39;, $referer = &#39;&#39;) {
    $tmpInfo = &#39;&#39;;
    //用来存放cookie的文件
    //初始化curl
    $curl = curl_init();
    //设定目标网址
    curl_setopt($curl, CURLOPT_URL, $url);
    //使用目前所用的浏览器代理
    curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER[&#39;HTTP_USER_AGENT&#39;]);
    //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.phprm.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 = &#39;<pre class="brush:php;toolbar:false"><b>错误:</b><br />&#39; . curl_error($curl);
    }
    //关闭curl对象
    curl_close($curl);
    //返回结果
    return $tmpInfo;
}
?>
Nach dem Login kopieren

例子,soap代码如下:

<?php
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[] = &#39;SOAPAction: "&#39; . $SoapAction . &#39;"&#39;;
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    $xmlResponse = curl_exec($ch);
    curl_close($ch);
    return $xmlResponse;
}
?>
Nach dem Login kopieren


永久地址:

转载随意~请带上教程地址吧^^

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage