zoukankan      html  css  js  c++  java
  • cURL函数

    PHP的cURL函数是通过libcurl库与服务器使用各种类型的协议进行连接和通信的,curl目前支持HTTP GET 、HTTP POST 、HTTPS认证、FTP上传、HTTP基于表单的上传、cookie和用户名+密码的认证等,功能十分强大。

    在PHP中建立cURL请求的基本步骤:
      1、初始化
      2、设置变量
      3、执行并获取结果
      4、释放cURL句柄

    curl的几个重要的函数:
      1、curl_init:初始化一个cURL会话
      2、curl_setopt:设置cURL传输选项(关键)
      3、curl_exec:执行一个cURL会话
      4、curl_close:关闭一个cURL会话


    一、curl函数模拟GET
        根据HTTP规范,GET用于信息的获取,可以理解为通过URL地址访问网址,是最基本的用法。
    示例:

    1 <?php
    2 //GET方式抓取页面
    3 $ch = curl_init(); //初始化
    4 $url = "http://baidu.com"; //设置抓取URL地址
    5 curl_setopt($ch,CURLOPT_URL,$url);//GET方式抓取URL
    6 curl_exec($ch);//执行
    7 curl_close($ch);//关闭
    8 
    9 ?>

    二、curl函数处理GET数据
    有时候通过GET方式获取页面并不需要全部的数据,而需要截取部分数据,这时候需要通过CURLOPT_RETURNTRANSFER选项将页面以文件流的形式保存,然后进行输出。

    示例:

     1 <?php
     2 
     3 $url ="http://apix.sinaapp.com/joke/?appkey=trialuser";
     4 $ch = curl_init();
     5 curl_setopt($ch,CURLOPT_URL,$url);
     6 curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
     7 $output = curl_exec($ch);
     8 curl_close($ch);
     9 echo $output;
    10 
    11 ?>


    三、curl函数模拟POST请求
    根据HTTP规范,POST用于向服务器提交数据,典型的应用为表单提交,安全性较GET方式安全。模拟POST请求需要使用CURLOPT_POST和CURLOPT_POSTFIELDS两个选项。


    四、curl函数模拟POST上传文件
    POST另一个应用为上传文件,微信的高级接口也开放多媒体文件上传功能。文件上传的加密方式为multipart/form-data,POST内容需要为数组格式。

     1 //模拟POST上传文件
     2 //POST提交内容
     3 $post = array("filename"=>"@D:AppServwwwcurlyunzhimeng.jpg");
     4 $url = "http://yzmweixin.sinaapp.com/uplode.php";//上传地址
     5 $ch = curl_init();
     6 curl_setopt($ch,CURLOPT_URL,$url);
     7 curl_setopt($ch,CURLOPT_POST,1);//模拟POST
     8 curl_setopt($ch,CURLOPT_POSTFIELDS,$post);//POST内容
     9 curl_exec($ch);
    10 curl_close($ch);
  • 相关阅读:
    线上六个性能问题案例分享
    通达OA 前台任意用户登录漏洞复现
    CVE-2019-11043-Nginx PHP 远程代码执行
    CVE-2019-10758-Mongo-express-远程代码执行
    CVE-2017-7529-Nginx越界读取缓存漏洞
    add_header被覆盖 -配置错误
    目录穿越漏洞 -配置错误
    CRLF注入漏洞 -配置错误
    CVE-2019-12409-Apache Solr JMX服务远程代码执行
    CVE-2017-12149-JBoss 5.x/6.x 反序列化
  • 原文地址:https://www.cnblogs.com/heyijing/p/5072413.html
Copyright © 2011-2022 走看看