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实现维护文件代码
Jun 14 PHP
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
May 04 PHP
克隆一个新项目的快捷方式
Apr 10 PHP
解析php根据ip查询所在地区(非常有用,赶集网就用到)
Jul 01 PHP
php读取excel文件的简单实例
Aug 26 PHP
修改ThinkPHP缓存为Memcache的方法
Jun 25 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
Jun 13 PHP
PHP文件操作实例总结
Sep 27 PHP
thinkPHP实现多字段模糊匹配查询的方法
Dec 01 PHP
php自定义函数实现统计中文字符串长度的方法小结
Apr 15 PHP
php使用fputcsv实现大数据的导出操作详解
Feb 27 PHP
详解使用php-cs-fixer格式化代码
Sep 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调用Linux命令权限不足问题解决方法
2015/02/07 PHP
javascript String 对象
2008/04/25 Javascript
javascript 多种搜索引擎集成的页面实现代码
2010/01/02 Javascript
js实现网站首页图片滚动显示
2013/02/04 Javascript
jquery获取tr中控件值并操作tr实现思路
2013/03/27 Javascript
JavaScript运行时库属性一览表
2014/03/14 Javascript
jQuery+CSS3实现树叶飘落特效
2015/02/01 Javascript
jquery插件orbit.js实现图片折叠轮换特效
2015/04/14 Javascript
JavaScript实现鼠标滑过处生成气泡的方法
2015/05/16 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
基于JavaScript实现自定义滚动条
2017/01/25 Javascript
ES6学习教程之Map的常用方法总结
2017/08/03 Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
2018/10/09 Javascript
JS原型和原型链原理与用法实例详解
2020/02/05 Javascript
python实现求最长回文子串长度
2018/01/22 Python
tensorflow 打印内存中的变量方法
2018/07/30 Python
python实现身份证实名认证的方法实例
2019/11/08 Python
flask框架url与重定向操作实例详解
2020/01/25 Python
详解python itertools功能
2020/02/07 Python
基于pygame实现童年掌机打砖块游戏
2020/02/25 Python
python实现文字版扫雷
2020/04/24 Python
python爬虫使用正则爬取网站的实现
2020/08/03 Python
canvas学习笔记之2d画布基础的实现
2019/02/21 HTML / CSS
美国玩具公司:U.S.Toy
2018/05/19 全球购物
存储过程的优点有哪些
2012/09/27 面试题
门卫岗位安全职责
2013/12/13 职场文书
咖啡蛋糕店创业计划书
2014/01/28 职场文书
《金钱的魔力》教学反思
2014/02/24 职场文书
新闻发布会策划方案
2014/06/12 职场文书
宾馆仓管员岗位职责
2014/07/27 职场文书
党的生日活动方案
2014/08/15 职场文书
2015年七夕情人节感言
2015/08/03 职场文书
基于Python实现一个春节倒计时脚本
2022/01/22 Python
光之国的四大叛徒:第一贝利亚导致宇宙毁灭,赛文奥特曼在榜
2022/03/18 日漫
JAVA springCloud项目搭建流程
2022/05/11 Java/Android