PHP扩展CURL的用法详解


Posted in PHP onJune 20, 2014

实现的功能:

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(‘3water.com')

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 相关文章推荐
PHP实现多条件查询实例代码
Jul 17 PHP
php下使用strpos需要注意 === 运算符
Jul 17 PHP
PHP自动选择 连接本地还是远程数据库
Dec 02 PHP
PHP小技巧之函数重载
Jun 02 PHP
PHP制作万年历
Jan 07 PHP
php生成图片验证码的方法
Apr 15 PHP
php连接oracle数据库的方法(测试成功)
May 26 PHP
thinkPHP中配置的读取与C方法详解
Dec 05 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
Apr 04 PHP
PHP中define() 与 const定义常量的区别详解
Jun 25 PHP
php菜单/评论数据递归分级算法的实现方法
Aug 01 PHP
PHP 对象继承原理与简单用法示例
Apr 21 PHP
教你如何解密 “ PHP 神盾解密工具 ”
Jun 20 #PHP
ThinkPHP3.1查询语言详解
Jun 19 #PHP
ThinkPHP3.1数据CURD操作快速入门
Jun 19 #PHP
ThinkPHP3.1.3版本新特性概述
Jun 19 #PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
Jun 19 #PHP
解密ThinkPHP3.1.2版本之模块和操作映射
Jun 19 #PHP
解密ThinkPHP3.1.2版本之模板继承
Jun 19 #PHP
You might like
ThinkPHP在Cli模式下使用模板引擎的方法
2015/09/25 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
2017/06/02 PHP
PHP+ajax实现上传、删除、修改单张图片及后台处理逻辑操作详解
2020/02/12 PHP
javascript中巧用“闭包”实现程序的暂停执行功能
2007/04/04 Javascript
jquery 新浪网易的评论块制作
2010/07/01 Javascript
统计jQuery中各字符串出现次数的工具
2012/05/03 Javascript
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
2012/12/27 Javascript
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
基于jquery实现的图片在各种分辨率下未知的容器内上下左右居中
2014/05/11 Javascript
JavaScript实现点击按钮直接打印
2016/01/06 Javascript
JavaScript正则表达式匹配 div  style标签
2016/03/15 Javascript
JavaScript算法系列之快速排序(Quicksort)算法实例详解
2016/09/04 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
JS实现元素上下左右移动效果
2017/10/18 Javascript
快速解决vue-cli不能初始化webpack模板的问题
2018/03/20 Javascript
JavaScript中的"=、==、==="区别讲解
2019/01/22 Javascript
react的滑动图片验证码组件的示例代码
2019/02/27 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
2019/04/29 Javascript
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
在vue中实现嵌套页面(iframe)
2020/07/30 Javascript
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
2021/01/29 jQuery
[01:25]DOTA2超级联赛专访iG 将调整状态找回自己
2013/06/05 DOTA
Windows下搭建python开发环境详细步骤
2020/07/20 Python
Python对数据进行插值和下采样的方法
2018/07/03 Python
Python使用分布式锁的代码演示示例
2018/07/30 Python
Django中的用户身份验证示例详解
2019/08/07 Python
前端canvas水印快速制作(附完整代码)
2019/09/19 HTML / CSS
学生安全教育材料
2014/02/14 职场文书
《挑山工》的教学反思
2014/02/16 职场文书
煤矿班组长竞聘书
2014/03/31 职场文书
公司门卫岗位职责
2015/04/13 职场文书
教师节感想
2015/08/11 职场文书
2016高考寄语或鼓励的话语
2015/12/04 职场文书
农村房屋租赁合同(范本)
2019/07/23 职场文书
MySQL8.0 Undo Tablespace管理详解
2022/06/16 MySQL