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 相关文章推荐
如何去掉文章里的 html 语法
Oct 09 PHP
支持中文的php加密解密类代码
Nov 27 PHP
php中3种方法删除字符串中间的空格
Mar 10 PHP
PHP return语句的另一个作用
Jul 30 PHP
如何利用http协议发布博客园博文评论
Aug 03 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
Jan 09 PHP
全面了解PHP中的全局变量
Jun 17 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
Sep 22 PHP
PHP自定义函数获取汉字首字母的方法
Dec 01 PHP
php实现评论回复删除功能
May 23 PHP
PHP耦合设计模式实例分析
Aug 08 PHP
PHP中$GLOBALS与global的区别详解
Mar 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
php实现汉字验证码和算式验证码的方法
2015/03/07 PHP
php图片水印添加、压缩、剪切的封装类实现
2020/04/18 PHP
PHP实现在数据库百万条数据中随机获取20条记录的方法
2017/04/19 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
2018/05/28 PHP
TP5.0框架实现无限极回复功能的方法分析
2019/05/04 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
JS维吉尼亚密码算法实现代码
2010/11/09 Javascript
最短的javascript:地址栏载入脚本代码
2011/10/13 Javascript
jQuery中prop()方法用法实例
2015/01/05 Javascript
手机端转盘抽奖代码分享
2015/09/10 Javascript
封装属于自己的JS组件
2016/01/27 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
jquery实现拖动效果
2016/08/10 Javascript
jquery弹出框插件jquery.ui.dialog用法分析
2016/08/20 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
2017/08/04 Javascript
vue中v-model动态生成的实例详解
2017/10/27 Javascript
JS实现的input选择图片本地预览功能示例
2018/08/29 Javascript
微信小程序使用wxParse解析html的实现示例
2018/08/30 Javascript
JS实现的冒泡排序,快速排序,插入排序算法示例
2019/03/02 Javascript
利用JS判断元素是否为数组的方法示例
2021/01/08 Javascript
使用FastCGI部署Python的Django应用的教程
2015/07/22 Python
Python内建函数之raw_input()与input()代码解析
2017/10/26 Python
TensorFlow模型保存和提取的方法
2018/03/08 Python
python 搭建简单的http server,可直接post文件的实例
2019/01/03 Python
python3.7 sys模块的具体使用
2019/07/22 Python
Python 脚本拉取 Docker 镜像问题
2019/11/10 Python
利用PyQt中的QThread类实现多线程
2020/02/18 Python
Python flask框架实现浏览器点击自定义跳转页面
2020/06/04 Python
open_basedir restriction in effect. 原因与解决方法
2021/03/14 PHP
茶叶生产计划书
2014/01/10 职场文书
商场端午节活动方案
2014/01/29 职场文书
《我的伯父鲁迅先生》教学反思
2014/02/12 职场文书
入党积极分子对十八届四中全会期盼的思想汇报
2014/10/17 职场文书
简易离婚协议书(范本)
2014/10/25 职场文书
新店开张宣传语
2015/07/13 职场文书