php中Curl 的简单使用

Curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。

中国气象台 http://www.nmc.gov.cn/publish/forecast/china.html

简单抓取一个网页

//1.初始化,创建一个新cURL资源

$ch = curl_init();

//2.设置URL和相应的选项

curl_setopt($ch, CURLOPT_URL, "http://www.baidu.com");

//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//输出网页

curl_setopt($ch, CURLOPT_HEADER, 0);

//3.抓取URL并把它传递给浏览器

curl_exec($ch);

//4.关闭cURL资源,并且释放系统资源

curl_close($ch);

模拟登陆,后抓取一个网页



$url = "http://192.168.1.201/ESSC/user.php";//登陆页面

$curl_url = "http://192.168.1.201/ESSC/user.php?act=collection_list";//登陆后要curl的页面

$data = 'username=123&password=admin123&act=act_login'; //登陆的参数

$curlobj = curl_init(); //开启curl

curl_setopt($curlobj,CURLOPT_URL,$url);////设置登陆的访问的URL

//执行之后不打印出来

curl_setopt($curlobj,CURLOPT_RETURNTRANSFER,true);

//COOKIE的相关设置,这部分设置需要在所有会话之前设置

$content=curl_exec($curlobj); //执行

curl_setopt($curlobj,CURLOPT_COOKIESESSION,TRUE); //设为 TRUE 时将开启新的一次 cookie 会话

curl_setopt($curlobj,CURLOPT_COOKIEFILE,'cookiefile'); //包含 cookie 数据的文件名,cookie 文件的格式可以是 Netscape 格式,或者只是纯 HTTP 头部风格,存入文件

curl_setopt($curlobj,CURLOPT_COOKIEJAR,'cookiefile'); //连接结束后,比如,调用 curl_close 后,保存cookie信息的文件。

curl_setopt($curlobj,CURLOPT_HEADER,0); //启用时会将头文件的信息作为数据流输出

curl_setopt($curlobj,CURLOPT_FOLLOWLOCATION,1);//这样能够让cURL支持页面链接跳转

//POST方式提交必备三步

curl_setopt($curlobj,CURLOPT_POST,1); //TRUE 时会发送 POST 请求

curl_setopt($curlobj,CURLOPT_POSTFIELDS,$data); //全部数据使用HTTP协议中的 "POST" 操作来发送

//设置 HTTP 头字段的数组。格式:array('Content-type: text/plain', 'Content-length: 100')

curl_setopt($curlobj,CURLOPT_HTTPHEADER,array('application/x-www-form-urlencoded; charset=utf-8','Content-length:'.strlen($data)));

curl_exec($curlobj); //执行

curl_setopt($curlobj,CURLOPT_URL,$curl_url);

curl_setopt($curlobj,CURLOPT_HTTPHEADER,array('Content-type:text/xml')); //设置 HTTP 头字段的数组

$content = curl_exec($curlobj); //执行

curl_close($curlobj); //关闭CURL

HTTP请求工具类:

composer require tinymeng/tools: -vvv

Use curl implementation request,Support uploading pictures and custom header !

<?php
use tinymeng\tools\HttpRequest;

    $data = array(
        'username'=>'majiameng',
        'password'=>'majiameng',
    );
    $url = 'http://majiameng.com/login';
    //1.Curl Post Request
    $response = HttpRequest::httpPost($url,$data);
    //2.Curl Post File Request
    //<input name="file" type="file">
    $data = array(
        'file' => new \CURLFile($_FILES['file']['tmp_name'],$_FILES['file']['type'],$_FILES['file']['name']),
    );
    $response = HttpRequest::httpPost($url,$data);
    //3.Curl Get Request
    $response = HttpRequest::httpGet($url,$data);
Last modification:June 7th, 2019 at 12:27 am
如果觉得我的文章对你有用,请随意赞赏

Leave a Comment