PHP中的cURL简述

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

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 ***

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


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

// 处理数据
echo $data;

?>

其中头部是一些 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

本文仅作为技术交流

相关推荐