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

2025-05-29 0 44

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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45
//初始化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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 php使用curl实现简单模拟提交表单功能 https://www.kuaiidc.com/94734.html

相关文章

发表评论
暂无评论