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 相关文章推荐
Mysql中limit的用法方法详解与注意事项
Apr 19 PHP
php实现快速排序法函数代码
Aug 27 PHP
探讨PHP调用时间格式的参数详解
Jun 06 PHP
深入apache host的配置详解
Jun 09 PHP
Zend Framework实现具有基本功能的留言本(附demo源码下载)
Mar 22 PHP
mysql_escape_string()函数用法分析
Apr 25 PHP
php封装的图片(缩略图)处理类完整实例
Oct 19 PHP
在php7中MongoDB实现模糊查询的方法详解
May 03 PHP
thinkphp5 加载静态资源路径与常量的方法
Dec 24 PHP
php 截取中英文混合字符串的方法
May 31 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
Jun 16 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 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
PHP生成静态页面详解
2006/11/19 PHP
PHP之COOKIE支持详解
2010/09/20 PHP
php 操作调试的方法
2012/07/12 PHP
PHP 文件系统详解
2012/09/13 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
2015/08/31 PHP
使用Codeigniter重写insert的方法(推荐)
2017/03/23 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
2017/06/07 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
基于JavaScript如何实现ajax调用后台定义的方法
2015/12/29 Javascript
AngularJS 最常用的功能汇总
2016/02/17 Javascript
AngularJS 表达式详细讲解及实例代码
2016/07/26 Javascript
深入浅析JavaScript中的3DES
2016/08/24 Javascript
Node.js中路径处理模块path详解
2016/11/14 Javascript
Javascript实现找不同色块的游戏
2017/07/17 Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
2017/07/20 Javascript
JavaScript折半查找(二分查找)算法原理与实现方法示例
2018/08/06 Javascript
微信小程序人脸识别功能代码实例
2019/05/07 Javascript
在JavaScript中使用严格模式(Strict Mode)
2019/06/13 Javascript
js实现鼠标拖曳效果
2020/12/30 Javascript
Python中Numpy ndarray的使用详解
2019/05/24 Python
python 日期排序的实例代码
2019/07/11 Python
英国在线自行车商店:Evans Cycles
2016/09/26 全球购物
比利时的在线灯具店:Lampen24.be
2019/07/01 全球购物
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
美国沙龙美发产品购物网站:Hair.com by L’Oreal
2020/11/09 全球购物
Java如何格式化日期
2012/08/07 面试题
应届中专生自荐书范文
2014/02/13 职场文书
工程师岗位职责规定
2014/02/26 职场文书
电工技术比武方案
2014/05/11 职场文书
餐厅感恩节活动策划方案
2014/10/11 职场文书
2014年实习生工作总结
2014/11/27 职场文书
辞职书格式样本
2015/02/26 职场文书
穷人该怎么创业?谨记以下几点
2019/07/11 职场文书
如何书写读后感?(附范文)
2019/07/26 职场文书
Python基于百度AI实现抓取表情包
2021/06/27 Python