php中的curl简述


  百度百科给的解释是 : curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中 .

  在linux下可以在命令行中使用 curl www.baidu.com , 他会返回百度的页面代码, 也就是通过URL的方式获取了网络文件的内容

PHP中使用CURL

  在php里提供了这样一个库及其函数实现curl调用  , 用来抓取页面内容是比较不错的用途 , 也就是爬虫咯, 模拟登陆也可以

  用php_info() 查看是否开启了curl . 如未开启, 请在开启后进行下一步


来一个例子

<?php

//1.初始化curl对象
$curl = curl_init();

//2.设置一系列访问参数 curl set options
/*
curl_setopt(param1, param2, param3)
param1 : 也就是curl对象句柄
param2 : 设置的参数的类型(设置的是什么参数), 大多以CURLOPT_xxx的形式
param3 : 参数的值, 这个值的类型由param2决定

  *** cURL 在php中的更多函数操作, 使用范例和curl_setopt的参数可以参考 php文档 :  http://php.net/manual/zh/ref.curl.php ***

 */ 
curl_setopt($curl, CURLOPT_URL, 'www.baidu.com');  // 设置抓取的url
curl_setopt($curl, CURLOPT_HEADER, 1); // 设置header
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 设置返回的方式

//3. 执行curl操作
$data = curl_exec($curl); // 


//4. 关闭cURL
curl_close($curl);

// 处理数据
echo $data;

?>

  然后返回了这样的结果(www.baidu.com 的界面)


 其中头部是一些 Header信息, 后面就是html的内容, 在浏览器中html内容直接输出后被转换成页面内容, 这与在linux中执行curl 操作是相同的 , 这样我们就获取到了页面的数据 , 如果是做爬虫那就可以使用正则表达式提取需要的数据 , 然后存取到数据库中就可以了


POST数据

 

<?php

// 初始化的时候设定访问地址
$curl = curl_init("localhost/phplearn/curl_receive.php"); // 这个地址是我自己写的测试用的, 唯一的输出内容是下面返回结果的第二行的内容

$post = "username=arron&password=r20jf02jg"; // 设置数据

curl_setopt($curl, CURLOPT_HEADER, 1); // 设置header
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 设置返回的方式
curl_setopt($curl, CURLOPT_POST, 1);  // 开启post
curl_setopt($curl, CURLOPT_POSTFIELDS, $post); // 设置post数据

$result = curl_exec($curl);  // 执行

// 避免访问错误
if (curl_errno($curl) > 0)
    die("Wrong : ".curl_error($curl));

echo $result;

curl_close($curl); // 关闭

?>

然后我们看看返回结果

 

HTTP/1.1 200 OK Date: Mon, 24 Aug 2015 06:54:23 GMT Server: Apache/2.4.10 (Ubuntu) Vary: Accept-Encoding Content-Length: 71 Content-Type: text/html; charset=UTF-8 
您POST过来的数据是 : username = arron , password = r20jf02jg

同样返回了Header信息和我们访问页面的输出信息, 并将post的数据送到了我们的访问页面 . 如果是get方法传递数据直接在url后面加上就可以了 .


更多curl使用方法以后再说


参考curl文档 : http://php.net/manual/zh/ref.curl.php


本文仅作为技术交流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值