php使用curl实现简单模拟提交表单功能


Posted in PHP onMay 15, 2017

php 使用curl 进行简单模拟提交表单,供大家参考,具体内容如下

//初始化curl
$ch = curl_init();
$url = 'xxx';
$option = [
 CURLOPT_URL => $url,
 CURLOPT_HEADER => 1,
 CURLOPT_RETURNTRANSFER => 1,
];
curl_setopt_array($ch, $option);
$output = curl_exec($ch);
preg_match_all('/Set-Cookie: (.*);/i', $output, $str); //正则匹配
//如果有token的话就获取token
preg_match('/token = \"(.*)\"/i', $output, $token);
if (empty($str)) {
 return false;
}
$cook = $str[1];
$cookie = implode(';', $cook);

$up_url = 'xxx';
$post_data = [
 'name' => 'test_',
 'tel' => '18819271234',
 'email' => 'qqhahadfdfads@163.com',
 'message' => 'this is my message;',
 '_token' => $token[1],
];
$options = [
 CURLOPT_URL => $up_url,
 CURLOPT_RETURNTRANSFER => 1,
 CURLOPT_HEADER => 1,
 CURLOPT_USERAGENT => "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36",
 CURLOPT_COOKIESESSION => 1,
 CURLOPT_POST => 1,
 CURLOPT_POSTFIELDS => $post_data,
 CURLOPT_COOKIE => $cookie
];
curl_setopt_array($ch, $options);
$res = curl_exec($ch);
// $info = curl_getinfo($ch);
if ($res === FALSE) {
 p('curl Error: ' . curl_error($ch));
}
curl_close($ch);
p($res);

取自基于laravel开发的一个网站, laravel中表单中有一个csrf_token 的. 所以就得获取token, 还有带上cookie

这里注意的是, 不能同时初始化两个curl, 否则token或者cookie会发生变化, 如果你需要初始化两个curl的话, 可以使用CURLOPT_COOKIEJAR设置. [详情看手册]

然后运行下: binggo

php使用curl实现简单模拟提交表单功能

使用curl时, 比较重要的就是一个cookie的应用, 翻了下手册, 设置cookie的就有四个...CURLOPT_COOKIESESSION、CURLOPT_COOKIE、CURLOPT_COOKIEFILE、CURLOPT_COOKIEJAR

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
聊天室php&mysql(一)
Oct 09 PHP
分享一个PHP数据流应用的简单例子
Jun 01 PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
Aug 14 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
Aug 21 PHP
php微信支付之APP支付方法
Mar 04 PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
Jan 28 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
Mar 18 PHP
php 数组随机取值的简单实例
May 23 PHP
PHP封装的MSSql操作类完整实例
May 26 PHP
php实现查询功能(数据访问)
May 23 PHP
php解压缩zip和rar压缩包文件的方法
Jul 10 PHP
PHP如何将图片文件上传到另外一台服务器上
Aug 26 PHP
PHP读取Excel类文件
May 15 #PHP
详谈php中 strtr 和 str_replace 的效率问题
May 14 #PHP
PHP从数组中删除元素的四种方法实例
May 12 #PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
May 12 #PHP
php中时间函数date及常用的时间计算
May 12 #PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
May 11 #PHP
PHP 实现浏览记录并按日期分组
May 11 #PHP
You might like
颠覆常识!无色透明的咖啡诞生了(中日双语)
2021/03/03 咖啡文化
使用字符串函数输出整数化的PHP版本号
2006/10/09 PHP
php 错误处理经验分享
2011/10/11 PHP
PHP创建多级目录的两种方法
2016/10/28 PHP
javascript实现的基于金山词霸网络翻译的代码
2010/01/15 Javascript
使用JavaScript switch case 另类写法
2010/03/14 Javascript
jQuery 工具函数学习资料
2010/04/29 Javascript
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
jQuery 源码分析笔记(2) 变量列表
2011/05/28 Javascript
基于javascript实现checkbox复选框实例代码
2016/01/28 Javascript
js提交form表单,并传递参数的实现方法
2016/05/25 Javascript
你不需要jQuery(三) 新AJAX方法fetch()
2016/06/14 Javascript
微信小程序开发探究
2016/12/27 Javascript
javascript回调函数的概念理解与用法分析
2017/05/27 Javascript
详解nodejs实现本地上传图片并预览功能(express4.0+)
2017/06/28 NodeJs
JS/HTML5游戏常用算法之碰撞检测 像素检测算法实例详解
2018/12/12 Javascript
微信小程序自定义纯净模态框(弹出框)的实例代码
2020/03/09 Javascript
js函数柯里化的方法和作用实例分析
2020/04/11 Javascript
基于python编写的微博应用
2014/10/17 Python
Python上传package到Pypi(代码简单)
2016/02/06 Python
python下10个简单实例代码
2017/11/15 Python
解决pycharm 工具栏Tool中找不到Run manager.py Task的问题
2019/07/01 Python
使用python求解二次规划的问题
2020/02/29 Python
Python使用pyenv实现多环境管理
2021/02/05 Python
实体的生命周期
2013/08/31 面试题
实习护理工作自我评价
2013/09/25 职场文书
作弊检讨书1000字
2014/02/01 职场文书
怎样写好自我评价呢?
2014/02/16 职场文书
买卖协议书范本
2014/04/21 职场文书
七一建党节演讲稿
2014/09/11 职场文书
个人对照检查剖析材料
2014/10/13 职场文书
感动中国何玥观后感
2015/06/02 职场文书
聘任书格式及范文
2015/09/21 职场文书
2019年公司快递收发管理制度模板
2019/11/20 职场文书
SpringBoot生成License的实现示例
2021/06/16 Java/Android
Golang gRPC HTTP协议转换示例
2022/06/16 Golang