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.jb51.net')

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

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

4 最后关闭curl_close();

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

$user = "admin";
$pass = "admin";
$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 = "admin";
$pass = "admin100";
$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']=="admin"){
 echo "";
}else{
 echo "";
}
//print_r($_POST);
?>

相关文章

  • 基于PHP读取TXT文件向数据库导入海量数据的方法

    基于PHP读取TXT文件向数据库导入海量数据的方法

    本篇文章小编为大家介绍,基于PHP读取TXT文件向数据库导入海量数据的方法。需要的朋友参考下
    2013-04-04
  • laravel使用Faker数据填充的实现方法

    laravel使用Faker数据填充的实现方法

    这篇文章主要给大家介绍了关于laravel使用Faker数据填充的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用laravel具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • 解决php扩展安装不生效问题

    解决php扩展安装不生效问题

    这篇文章主要介绍了解决php扩展安装不生效问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • ThinkPHP实现非标准名称数据表快速创建模型的方法

    ThinkPHP实现非标准名称数据表快速创建模型的方法

    这篇文章主要介绍了ThinkPHP实现非标准名称数据表快速创建模型的方法,对于采用ThinkPHP操作非标准名称数据表的情况非常实用,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-11-11
  • php和腾讯直播的实现代码

    php和腾讯直播的实现代码

    这篇文章主要介绍了php和腾讯直播的实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • thinkPHP自动验证、自动添加及表单错误问题分析

    thinkPHP自动验证、自动添加及表单错误问题分析

    这篇文章主要介绍了thinkPHP自动验证、自动添加及表单错误问题分析,结合案例形式分析了thinkPHP自动完成机制的相关使用技巧与注意事项,需要的朋友可以参考下
    2016-10-10
  • 如何用PHP实现插入排序?

    如何用PHP实现插入排序?

    本篇文章,小编为大家介绍一下关于如何用PHP实现插入排序的方法,有需要的朋友可以参考一下
    2013-04-04
  • Symfony2安装第三方Bundles实例详解

    Symfony2安装第三方Bundles实例详解

    这篇文章主要介绍了Symfony2安装第三方Bundles的方法,结合实例形式分析了Symfony2通过composer来安装Bundle的具体步骤与相关技巧,需要的朋友可以参考下
    2016-02-02
  • php实现批量压缩图片文件大小的脚本

    php实现批量压缩图片文件大小的脚本

    这篇文章主要介绍了php实现把某个目录下的图片进行批量压缩文件大小的脚本,单反拍的图片,体积太大,所以要压缩,需要的朋友可以参考下
    2014-07-07
  • php从数据库中读取特定的行(实例)

    php从数据库中读取特定的行(实例)

    下面小编就为大家带来一篇php从数据库中读取特定的行(实例)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06

最新评论