你好,游客 登录 注册 搜索
背景:
阅读新闻

PHP中的cURL简述

[日期:2016-12-29] 来源:Linux社区  作者:panzer9 [字体: ]

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

在Linux下可以在命令行中使用 curl www.linuxidc.com , 他会返回Linux公社的页面代码, 也就是通过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 ***

&nbsp;*/
curl_setopt($curl, CURLOPT_URL, 'www.linuxidc.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.linuxidc.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

本文仅作为技术交流

Ubuntu 16.04 及衍生版安装 cURL 7.49.0 http://www.linuxidc.com/Linux/2016-05/131574.htm

详解PHP的cURL几个函数  http://www.linuxidc.com/Linux/2016-11/137218.htm

本文永久更新链接地址http://www.linuxidc.com/Linux/2016-12/138944.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款