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之数据库操作详解及乱码解决!
Jan 02 PHP
smarty 缓存控制前的页面静态化原理
Mar 15 PHP
php环境下利用session防止页面重复刷新的具体实现
Jan 09 PHP
php实现给图片加灰色半透明效果的方法
Oct 20 PHP
基于CakePHP实现的简单博客系统实例
Jun 28 PHP
WampServer搭建php环境时遇到的问题汇总
Jul 23 PHP
PHP对象链式操作实现原理分析
Oct 09 PHP
Laravel学习教程之View模块详解
Sep 18 PHP
PHP封装的XML简单操作类完整实例
Nov 13 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
Oct 15 PHP
Laravel 5+ .env环境配置文件详解
Apr 06 PHP
Thinkphp 框架扩展之数据库驱动常用方法小结
Apr 23 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
php面向对象的方法重载两种版本比较
2008/09/08 PHP
解析PHP无限级分类方法及代码
2013/06/21 PHP
理解PHP中的Session及对Session有效期的控制
2016/01/08 PHP
CodeIgniter视图使用注意事项
2016/01/20 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
php接口技术实例详解
2016/12/07 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
2017/02/08 PHP
CodeIgniter框架基本增删改查操作示例
2017/03/23 PHP
10个基于浏览器的JavaScript调试工具分享
2013/02/07 Javascript
jquery select多选框的左右移动 具体实现代码
2013/07/03 Javascript
jQuery多项选项卡的实现思路附样式及代码
2014/06/03 Javascript
innerHTML在IE中报错解决方案
2014/12/15 Javascript
jQuery实现表格颜色交替显示的方法
2015/03/09 Javascript
JavaScript中各种引用类型的常用操作方法小结
2016/05/05 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
JavaScript Date对象应用实例分享
2017/10/30 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
2018/11/10 Javascript
vue-cli系列之vue-cli-service整体架构浅析
2019/01/14 Javascript
简单了解JavaScript中的执行上下文和堆栈
2019/06/24 Javascript
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
简单了解three.js 着色器材质
2020/08/03 Javascript
[03:23]我的刀塔你不可能这么可爱 第一期金萌萌的故事
2014/06/20 DOTA
Python中的pprint折腾记
2015/01/21 Python
Python 多进程并发操作中进程池Pool的实例
2017/11/01 Python
解决pycharm无法调用pip安装的包问题
2018/05/18 Python
Mac下Anaconda的安装和使用教程
2018/11/29 Python
python开根号实例讲解
2020/08/30 Python
使用python操作lmdb对数据读取的实例
2020/12/11 Python
澳大利亚窗帘商店:Curtain Wonderland
2019/12/01 全球购物
SheIn沙特阿拉伯:女装在线
2020/03/23 全球购物
linux面试题参考答案(3)
2012/09/13 面试题
移风易俗倡议书
2014/04/15 职场文书
物资采购管理制度
2015/08/06 职场文书
k-means & DBSCAN 总结
2021/04/27 Python
Python实现拼音转换
2021/06/07 Python
Win11安全功能升级:内置防网络钓鱼功能
2022/04/08 数码科技