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程序
Oct 09 PHP
php中实现记住密码自动登录的代码
Mar 02 PHP
PHP 如何利用phpexcel导入数据库
Aug 24 PHP
部署PHP项目应该注意的几点事项分享
Dec 20 PHP
php实现的DateDiff和DateAdd时间函数代码分享
Aug 16 PHP
php中heredoc与nowdoc介绍
Dec 25 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
Mar 18 PHP
php一个解析字符串排列数组的方法
May 12 PHP
ThinkPHP函数详解之M方法和R方法
Sep 10 PHP
PHP中的Trait 特性及作用
Apr 03 PHP
PHP实现限制IP访问及提交次数的方法详解
Jul 17 PHP
PHP空值检测函数与方法汇总
Nov 19 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
谏山创故乡大分县日田市水坝将设立《进击的巨人》立艾伦、三笠以及阿尔敏的铜像!
2020/03/06 日漫
php实例分享之html转为rtf格式
2014/06/02 PHP
ThinkPHP在新浪SAE平台的部署实例
2014/10/31 PHP
常用PHP数组排序函数归纳
2016/08/08 PHP
PHP+百度AI OCR文字识别实现了图片的文字识别功能
2019/05/08 PHP
使用EXT实现无刷新动态调用股票信息
2008/11/01 Javascript
JavaScript 对象模型 执行模型
2009/12/06 Javascript
Textarea与懒惰渲染实现代码
2012/01/04 Javascript
JavaScript 对任意元素,自定义右键菜单的实现方法
2013/05/08 Javascript
JavaScript中的方法调用详细介绍
2014/12/30 Javascript
JavaScript中的Math.SQRT1_2属性使用简介
2015/06/14 Javascript
第二篇Bootstrap起步
2016/06/21 Javascript
javascript深拷贝(deepClone)详解
2016/08/24 Javascript
jQuery easyui刷新当前tabs的方法
2016/09/23 Javascript
浅谈js script标签中的预解析
2016/12/30 Javascript
详解layui中的树形关于取值传值问题
2018/01/16 Javascript
跟混乱的页面弹窗说再见
2019/04/11 Javascript
Vue实现表格批量审核功能实例代码
2019/05/28 Javascript
[01:04:49]KG vs LGD 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python抓取Discuz!用户名脚本代码
2013/12/30 Python
python实现在无须过多援引的情况下创建字典的方法
2014/09/25 Python
Python 实现一个颜色色值转换的小工具
2016/12/06 Python
python实现决策树ID3算法的示例代码
2018/05/30 Python
python绘制中国大陆人口热力图
2018/11/07 Python
Python数据类型之String字符串实例详解
2019/05/08 Python
Python 转换RGB颜色值的示例代码
2019/10/13 Python
在python tkinter界面中添加按钮的实例
2020/03/04 Python
python爬虫容易学吗
2020/06/02 Python
EMPHASIS艾斐诗官网:周生生旗下原创精品珠宝品牌
2020/12/17 全球购物
财务科科长岗位职责
2014/03/10 职场文书
《悯农》教学反思
2014/04/28 职场文书
班子四风对照检查材料
2014/08/21 职场文书
司考复习计划
2015/01/19 职场文书
事业单位个人总结
2015/02/12 职场文书
小学校本教研总结
2015/08/13 职场文书
MySQL Innodb关键特性之插入缓冲(insert buffer)
2021/04/08 MySQL