PHP扩展CURL的用法详解

 更新时间:2014年06月20日 09:32:29   投稿:hebedich   我要评论
CURL是利用URL语法爱命令行方式下工作的文件传输工具。它支持很多协议。它支持认证功能。php中常用都实现更复杂的传输功能。

实现的功能:

1、实现远程获取和采集内容

2、实现PHP 网页版的FTP上传下载

3、实现模拟登陆:去一个邮件系统,curl可以模拟cookies

4、实现接口对接(API),数据传输等:通过一个平台发送短信啊,抓取和传递所传输的信息。

5、实现模拟Cookie等:登陆的状态下才可以操作一些属性。

如何使用CURL功能

默认情况加PHP是不支持CURL的,需要在php.ini中开启该功能

;extension=php_curl.dll前面的分号去掉

1  整个操作过程中第一步是用cur_init()函数进行初始化

$curl = curl_init(‘www.sxglgf.com')

2.用curl_setopt()函数进行设置选项。

3.设置后,进行执行事务 curl_exec($curl);

4 最后关闭curl_close();

使用PHP CURL实现传输和获取功能(post传输方式):获取远程网页数据

$user ="";
$pass ="";
$curlPost = "user=$user&pass=$pass";
$ch = curl_init(); //初始化一个CURL对象
curl_setopt($ch, CURLOPT_URL, "http://localhost/edu/login.php");
//设置你所需要抓取的URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
//设置curl参数,要求结果是否输出到屏幕上,为true的时候是不返回到网页中
假设上面的0换成1的话,那么接下来的$data就需要echo一下。
curl_setopt($ch, CURLOPT_POST, 1);
//post提交
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec($ch);
//运行curl,请求网页。
curl_close($ch);
[/code]

实现远程模拟登陆最基础部分。

curl也还是需要配置用户名和密码的,只不过是被浏览器隐藏了。

============================================================================

curl模拟登陆

模拟登陆:就是不登陆到php100的论坛,也能查看到相应的信息。

分析登陆字段--->登陆后保留cookie状-->读取cookie并跳转到相关页-->抓取数

1、模拟登陆后创建一个文件保存cookie内容

2、通过读取生成的cookie内容模拟用户登陆状态

3、到相关页面获取所需内容

tempname创建一个临时文件

tempnam() 函数创建一个具有唯一文件名的临时文件。 若成功,则该函数返回新的临时文件名。若失败,则返回 false。

tempnam(dir,prefix)

参数 描述

dir 必需。规定创建临时文件的目录。

prefix 必需。规定文件名的开头。

相当于,fopen  fwirte  fclose

它可以返回一个布尔值。使用第三方来登陆你的QQ、msn是很危险的,因为它可以记录你的登录状态,抓取你的用户名和密码。

使用CURL模拟登陆到PHP100论坛

1、分析登陆所需input框字段名和所需字段数量

2、保存cookie 模拟登陆后获取会员金币数量

代码:

//初始化一个 cURL 对象
$curl = curl_init();
//设置你需要抓取的URL
curl_setopt($curl, CURLOPT_URL, " http://www.baidu.com ");
//设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0);
//运行cURL,请求网页
$data = curl_exec($curl);
//关闭URL请求
curl_close($curl);
$user ="";
$pass ="";
$curlPost = "user=$user&pass=$pass";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, " http://localhost/curl/login.php ");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec($ch);
curl_close($ch);
?>
if($_POST['user']==""){
 echo "";
}else{
 echo "";
}
//print_r($_POST);
?>

相关文章

  • yii2.0之GridView自定义按钮和链接用法

    yii2.0之GridView自定义按钮和链接用法

    这篇文章主要介绍了yii2.0之GridView自定义按钮和链接用法,是非常实用的使用GridView进行表单操作技巧,需要的朋友可以参考下
    2014-12-12
  • 详解PHP防止盗链防止迅雷下载的方法

    详解PHP防止盗链防止迅雷下载的方法

    本篇文章主要介绍了详解PHP防止盗链防止迅雷下载的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • ThinkPHP中Session用法详解

    ThinkPHP中Session用法详解

    这篇文章主要介绍了ThinkPHP中Session用法,以实例形式详解分析了ThinkPHP中session类的常用操作技巧及session无效等情况的处理方法,是采用ThinkPHP进行项目开发中非常实用的技巧,需要的朋友可以参考下
    2014-11-11
  • 用Simple Excel导出xls实现方法

    用Simple Excel导出xls实现方法

    因为前几天写了篇文章,用php-excel-reader类导入excel内容,顺便说些excel导出问题,需要的朋友可以了解下
    2012-12-12
  • PHP之图片上传类实例代码(加了缩略图)

    PHP之图片上传类实例代码(加了缩略图)

    下面小编就为大家带来一篇PHP之图片上传类实例代码(加了缩略图)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • Yii框架响应组件用法实例分析

    Yii框架响应组件用法实例分析

    这篇文章主要介绍了Yii框架响应组件用法,结合实例形式分析了Yii响应组件的原理及常见使用技巧,需要的朋友可以参考下
    2019-09-09
  • PHP嵌套输出缓冲代码实例

    PHP嵌套输出缓冲代码实例

    这篇文章主要介绍了PHP嵌套输出缓冲代码实例,本文讲解嵌套使用ob系列函数的实例,需要的朋友可以参考下
    2015-05-05
  • ThinkPHP3.1新特性之G方法的使用

    ThinkPHP3.1新特性之G方法的使用

    ThinkPHP3.1的G方法的作用包括标记位置和区间两个功能。这篇文章主要介绍了ThinkPHP3.1版G方法的使用,需要的朋友可以参考下
    2014-06-06
  • php+ajax导入大数据时产生的问题处理

    php+ajax导入大数据时产生的问题处理

    介绍:就是想实现简单的ajax上传数据,但是当数据量较大的时候,问题就一个一个接着来了,其实数据也不是很大,就是csv格式数据 不到5w条数据。大小5M,一开始认为这个很简单,就是先上传一下文件,然后读取一下,存到金沙国际官网就好了,结果,可能我比较菜,弄了半天做出这个功能。环境是linux.
    2014-06-06
  • php类声明和php类使用方法示例分享

    php类声明和php类使用方法示例分享

    这篇文章主要介绍了php类声明和php类使用方法示例,需要的朋友可以参考下
    2014-03-03

最新评论