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 相关文章推荐
Content-type 的说明
Oct 09 PHP
PHP文件下载类
Dec 06 PHP
PHP5.2下chunk_split()函数整数溢出漏洞 分析
Jun 06 PHP
可以在线执行PHP代码包装修正版
Mar 15 PHP
PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
Jun 03 PHP
php读取excel文件示例分享(更新修改excel)
Feb 27 PHP
PHP实现HTTP断点续传的方法
Jun 17 PHP
使用php-timeit估计php函数的执行时间
Sep 06 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 PHP
php使用环形链表解决约瑟夫问题完整示例
Aug 07 PHP
解决laravel中日志权限莫名变成了root的问题
Oct 17 PHP
深入分析PHP设计模式
Jun 15 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
连接到txt文本的超链接,不直接打开而是点击后下载的处理方法
2009/07/01 PHP
PHP的PSR规范中文版
2013/09/28 PHP
PHP文件上传判断file是否己选择上传文件的方法
2014/11/10 PHP
PHP+MySQL之Insert Into数据插入用法分析
2015/09/27 PHP
Centos6.5和Centos7 php环境搭建方法
2016/05/27 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
jquery zTree异步加载简单实例分享
2013/02/05 Javascript
JQUERY 设置SELECT选中项代码
2014/02/07 Javascript
jquery等待效果示例
2014/05/01 Javascript
jquery使用remove()方法删除指定class子元素
2015/03/26 Javascript
cookie的secure属性详解
2015/04/08 Javascript
js数组去重的方法汇总
2015/07/29 Javascript
jQuery实现Tab选项卡切换效果简单演示
2015/11/23 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
js 索引下标之li集合绑定点击事件
2018/01/12 Javascript
vue-router重定向不刷新问题的解决
2018/06/25 Javascript
jQuery实现获取当前鼠标位置并输出功能示例
2019/01/05 jQuery
vue 插槽简介及使用示例
2020/11/19 Vue.js
python list转dict示例分享
2014/01/28 Python
Python实现打印螺旋矩阵功能的方法
2017/11/21 Python
Flask框架配置与调试操作示例
2018/07/23 Python
Python通过递归获取目录下指定文件代码实例
2019/11/07 Python
Python实现图片批量加入水印代码实例
2019/11/30 Python
pytorch 改变tensor尺寸的实现
2020/01/03 Python
在Python中通过threshold创建mask方式
2020/02/19 Python
python推导式的使用方法实例
2021/02/28 Python
流行文化收藏品:Sideshow(DC漫画,星球大战,漫威)
2019/03/17 全球购物
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
区域销售经理职责
2013/12/22 职场文书
金融行业职业生涯规划范文
2014/01/17 职场文书
行政部岗位职责范本
2014/03/13 职场文书
致百米运动员广播稿5篇
2014/10/13 职场文书
2014年高中班主任工作总结
2014/11/08 职场文书
追悼会答谢词范文
2015/09/29 职场文书
社区结对共建协议书
2016/03/23 职场文书