zoukankan      html  css  js  c++  java
  • php curl

    原文链接http://www.blogfshare.com/php-curl-get-post.html

    一、什么是CURL?

    cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 cURL 库。使用PHP的cURL库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网页,然后就可以以程序的方式得到你想要的数据了。无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内容,cURL 是一个功能强大的PHP库。

    二、CURL函数库。

    curl_close — 关闭一个curl会话
    curl_copy_handle — 拷贝一个curl连接资源的所有内容和参数
    curl_errno — 返回一个包含当前会话错误信息的数字编号
    curl_error — 返回一个包含当前会话错误信息的字符串
    curl_exec — 执行一个curl会话
    curl_getinfo — 获取一个curl连接资源句柄的信息
    curl_init — 初始化一个curl会话
    curl_multi_add_handle — 向curl批处理会话中添加单独的curl句柄资源
    curl_multi_close — 关闭一个批处理句柄资源
    curl_multi_exec — 解析一个curl批处理句柄
    curl_multi_getcontent — 返回获取的输出的文本流
    curl_multi_info_read — 获取当前解析的curl的相关传输信息
    curl_multi_init — 初始化一个curl批处理句柄资源
    curl_multi_remove_handle — 移除curl批处理句柄资源中的某个句柄资源
    curl_multi_select — Get all the sockets associated with the cURL extension, which can then be “selected”
    curl_setopt_array — 以数组的形式为一个curl设置会话参数
    curl_setopt — 为一个curl设置会话参数
    curl_version — 获取curl相关的版本信息

    curl_init()函数的作用初始化一个curl会话,curl_init()函数唯一的一个参数是可选的,表示一个url地址。
    curl_exec()函数的作用是执行一个curl会话,唯一的参数是curl_init()函数返回的句柄。
    curl_close()函数的作用是关闭一个curl会话,唯一的参数是curl_init()函数返回的句柄。

    三、PHP建立CURL请求的基本步骤

    ①:初始化

    curl_init()

    ②:设置属性

    curl_setopt().有一长串cURL参数可供设置,它们能指定URL请求的各个细节。

    ③:执行并获取结果

    curl_exec()

    ④:释放句柄

    curl_close()

    四、CURL实现GET和POST

    ①:GET方式实现

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
        //初始化
        $curl curl_init();
        //设置抓取的url
        curl_setopt($curl, CURLOPT_URL'http://www.baidu.com');
        //设置头文件的信息作为数据流输出
        curl_setopt($curl, CURLOPT_HEADER1);
        //设置获取的信息以文件流的形式返回,而不是直接输出。
        curl_setopt($curl, CURLOPT_RETURNTRANSFER1);
        //执行命令
        $data curl_exec($curl);
        //关闭URL请求
        curl_close($curl);
        //显示获得的数据
        print_r($data);
    ?>

    运行结果:

    image

    ②:POST方式实现

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
        //初始化
        $curl curl_init();
        //设置抓取的url
        curl_setopt($curl, CURLOPT_URL'http://www.baidu.com');
        //设置头文件的信息作为数据流输出
        curl_setopt($curl, CURLOPT_HEADER1);
        //设置获取的信息以文件流的形式返回,而不是直接输出。
        curl_setopt($curl, CURLOPT_RETURNTRANSFER1);
        //设置post方式提交
        curl_setopt($curl, CURLOPT_POST1);
        //设置post数据
        $post_data array(
            "username" => "coder",
            "password" => "12345"
            );
        curl_setopt($curl, CURLOPT_POSTFIELDS$post_data);
        //执行命令
        $data curl_exec($curl);
        //关闭URL请求
        curl_close($curl);
        //显示获得的数据
        print_r($data);
    ?>

    ③:如果获得的数据时json格式的,使用json_decode函数解释成数组。

    $output_array = json_decode($output,true);

    如果使用json_decode($output)解析的话,将会得到object类型的数据。

  • 相关阅读:
    深入理解JVM(2)——揭开HotSpot对象创建的奥秘
    深入理解JVM(3)——垃圾收集策略详解
    深入理解JVM(4)——对象内存的分配策略
    深入理解JVM(1)——JVM内存模型
    学习 IOC 设计模式前必读:依赖注入的三种实现
    学习Struts--Chap07:Struts2文件上传和下载
    POJ2823_Sliding Window
    POJ3378_Crazy Thairs
    POJ2374_Fence Obstacle Course
    POJ3709_K-Anonymous Sequence
  • 原文地址:https://www.cnblogs.com/zjdeblog/p/6434575.html
Copyright © 2011-2022 走看看