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地址访问网址,是最基本的用法。
示例:

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

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

示例:

 <?php

 $url ="http://apix.sinaapp.com/joke/?appkey=trialuser";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$output = curl_exec($ch);
curl_close($ch);
echo $output; ?>

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

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

 //模拟POST上传文件
//POST提交内容
$post = array("filename"=>"@D:\AppServ\www\curl\yunzhimeng.jpg");
$url = "http://yzmweixin.sinaapp.com/uplode.php";//上传地址
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,1);//模拟POST
curl_setopt($ch,CURLOPT_POSTFIELDS,$post);//POST内容
curl_exec($ch);
curl_close($ch);

cURL函数的更多相关文章

  1. 关于在用curl函数post网页数据时,遇上表单提交 type为submit 类型而且没有name和id时可能遇到的问题及其解决方法

    curl函数库实现爬网页内容的链接在 http://www.cnblogs.com/linguanh/p/4292316.html 下面这个是没有name和id 标识的 <input type= ...

  2. PHP中fopen,file_get_contents,curl函数的区别

    PHP中fopen,file_get_contents,curl函数的区别 1.fopen/file_get_contents每次请求都做DNS查询,并不对DNS的信息进行缓存,而curl会对DNS的 ...

  3. PHP中的CURL函数库

    PHP中的CURL函数库(Client URL Library Function) curl_close — 关闭一个curl会话curl_copy_handle — 拷贝一个curl连接资源的所有内 ...

  4. php中封装的curl函数(抓取数据)

    介绍一个封闭好的函数,封闭了curl函数的常用步骤,方便抓取数据. 代码如下: <?php /** * 封闭好的 curl函数 * 用途:抓取数据 * edit by www.jbxue.com ...

  5. 在PHP中开启CURL扩展,使其支持curl()函数

    在用PHP开发CMS的时候,要用到PHP的curl函数,默认状态下,这个函数需要开启CURL扩展,有主机使用权的,可通过PHP.ini文件开启本扩展,方法如下: 1.打开php.ini,定位到;ext ...

  6. Thinkphp3.2.3框架下封装公共的函数,例如封装CURL函数来获取接口数据

    当我们需要在控制层调用相同的封装函数时,写多次相同的函数,显得代码十分的拉杂,不精简: TP框架有一个很好的机制,可以再Common定义一个function.php函数,当我们在控制层调用的时候直接调 ...

  7. cURL函数库错误码说明之PHP curl_errno函数

    背景概述:游戏接口是使用PHP cURL扩展进行请求操作.但是,被请求的服务器经常会无故的不响应或者超时.总之,就是请求之后收不到响应回来的数据.这时候可不能说对方API接口有问题,或者,服务器有故障 ...

  8. 详细了解下PHP的curl函数及常用之处

    CURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等,我们使用它来发送HTTP请求.正因为这么强大,当然PHP也支持 CURL 库,前提是你的ph ...

  9. PHP使用curl函数实现多种请求(post,get)

    PHP使用curl函数实现get,post请求 一.CURL介绍 CURL是一个非常强大的开源库,支持很多协议,包括HTTP.FTP.TELNET等,我们使用它来发送HTTP请求.它给我 们带来的好处 ...

随机推荐

  1. mysql查询优化建议(百度)

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引.   2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使 ...

  2. 快速排序(python实现)

    算法导论上的快速排序采用分治算法,步骤如下: 1.选取一个数字作为基准,可选取末位数字 2.将数列第一位开始,依次与此数字比较,如果小于此数,将小数交换到左边,最后达到小于基准数的在左边,大于基准数的 ...

  3. codevs2178 表达式运算Cuties[笛卡尔树]

    2178 表达式运算Cuties  时间限制: 1 s  空间限制: 32000 KB  题目等级 : 大师 Master 题解  查看运行结果     题目描述 Description 给出一个表达 ...

  4. 洛谷P1288 取数游戏II[博弈论]

    题目描述 有一个取数的游戏.初始时,给出一个环,环上的每条边上都有一个非负整数.这些整数中至少有一个0.然后,将一枚硬币放在环上的一个节点上.两个玩家就是以这个放硬币的节点为起点开始这个游戏,两人轮流 ...

  5. 环境变量NLS_LANG

    NLS_LANG是一个环境变量,用于定义语言,地域以及字符集属性.对于非英语的字符集,NLS_LANG的设置就非常重要.NLS:‘National Language Support (NLS)’ 当我 ...

  6. 3357: [Usaco2004]等差数列

    3357: [Usaco2004]等差数列 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 321  Solved: 153[Submit][Statu ...

  7. jquery easyui 1.4.1 API( CHM版)

    ChangeLog Bug The combogrid has different height than other combo components. fixed. datagrid: The r ...

  8. JS组件系列——开源免费图表组件:Chart.js

    前言:最近被开源免费得有点上火了,各种组件首先想到的就是是开源否.是否免费.是否和bootstrap风格一致.想着以后做报表肯定要用到图表组件的,于是在Bootstrap中文网上面找到了Chart.j ...

  9. PageHelper简单实用

    mybatis-config.xml配置如下: <!-- 分页插件 --> <plugins> <plugin interceptor="com.github. ...

  10. Matlab2015入门学习01

    1. 两个命令: clear: 清除内存中变量的值(在workspace中可以看到) clc: 清除Command Window中的输出 2. 脚本编辑器: matlab脚本扩展名为*.m 在Comm ...