關於curltimeoutphp的信息

本文目錄一覽:

如何判斷php中curl模擬登陸是否成功

/**

* 模擬登錄

*/

//初始化變量

$cookie_file = “tmp.cookie”;

$login_url = “”;

$verify_code_url = “”;

echo “正在獲取COOKIE…\n”;

$curlj = curl_init();

$timeout = 5;

curl_setopt($curl, CURLOPT_URL, $login_url);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout);

curl_setopt($curl,CURLOPT_COOKIEJAR,$cookie_file); //獲取COOKIE並存儲

$contents = curl_exec($curl);

curl_close($curl);

echo “COOKIE獲取完成,正在取驗證碼…\n”;

//取出驗證碼

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $verify_code_url);

curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);

curl_setopt($curl, CURLOPT_HEADER, 0);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

$img = curl_exec($curl);

curl_close($curl);

$fp = fopen(“verifyCode.jpg”,”w”);

fwrite($fp,$img);

fclose($fp);

echo “驗證碼取出完成,正在休眠,20秒內請把驗證碼填入code.txt並保存\n”;

//停止運行20秒

sleep(20);

echo “休眠完成,開始取驗證碼…\n”;

$code = file_get_contents(“code.txt”);

echo “驗證碼成功取出:$code\n”;

echo “正在準備模擬登錄…\n”;

$post = “username=mabenpwd=hahahahaverifycode=$code”;

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url);

curl_setopt($curl, CURLOPT_HEADER, false);

curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);

curl_setopt($curl, CURLOPT_POSTFIELDS, $post);

curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);

$result=curl_exec($curl);

curl_close($curl);

//這一塊根據自己抓包獲取到的網站上的數據來做判斷

if(substr_count($result,”登錄成功”)){

echo “登錄成功\n”;

}else{

echo “登錄失敗\n”;

exit;

}

PHP curl超時設置的時間單位是1秒嗎

設置curl的超時時間 CURLOPT_TIMEOUT 為1 (最小為1),因此客戶端需要等待1秒

請教用Curl 在php 裏面模擬表單提交 文本+文件的寫法

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

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

public function curl($url, $postFields = null)

{

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_FAILONERROR, false);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

if ($this-readTimeout) {

curl_setopt($ch, CURLOPT_TIMEOUT, $this-readTimeout);

}

if ($this-connectTimeout) {

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $this-connectTimeout);

}

//https 請求

if(strlen($url) 5 strtolower(substr($url,0,5)) == “https” ) {

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

}

if (is_array($postFields) 0 count($postFields))

{

$postBodyString = “”;

$postMultipart = false;

foreach ($postFields as $k = $v)

{

if(“@” != substr($v, 0, 1))//判斷是不是文件上傳

{

$postBodyString .= “$k=” . urlencode($v) . “”;

}

else//文件上傳用multipart/form-data,否則用www-form-urlencoded

{

$postMultipart = true;

}

}

PHP curl超時設置的時間單位是1秒嗎?為什麼我的程序顯示的是7秒

瀉藥

PHP CURL超時設置分兩種,毫秒跟秒都是可以的。

curl普通秒級超時:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,$url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

curl_setopt($ch, CURLOPT_TIMEOUT,60); //只需要設置一個秒的數量就可以

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

curl_setopt($ch, CURLOPT_USERAGENT, $defined_vars[‘HTTP_USER_AGENT’]);

curl普通秒級超時使用:

curl_setopt($ch, CURLOPT_TIMEOUT,60);

curl如果需要進行毫秒超時,需要增加:

curl_easy_setopt(curl, CURLOPT_NOSIGNAL,1L);

//或者

curl_setopt ( $ch, CURLOPT_NOSIGNAL,true);//支持毫秒級別超時設置

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/195506.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-02 20:35
下一篇 2024-12-02 20:35

相關推薦

  • Java 監控接口返回信息報錯信息怎麼處理

    本文將從多個方面對 Java 監控接口返回信息報錯信息的處理方法進行詳細的闡述,其中包括如何捕獲異常、如何使用日誌輸出錯誤信息、以及如何通過異常處理機制解決報錯問題等等。以下是詳細…

    編程 2025-04-29
  • 使用Python爬蟲獲取電影信息的實現方法

    本文將介紹如何使用Python編寫爬蟲程序,來獲取和處理電影數據。需要了解基本的Python編程語言知識,並使用BeautifulSoup庫和Requests庫進行爬取。 一、準備…

    編程 2025-04-28
  • Python爬取網頁信息

    本文將從多個方面對Python爬取網頁信息做詳細的闡述。 一、爬蟲介紹 爬蟲是一種自動化程序,可以模擬人對網頁進行訪問獲取信息的行為。通過編寫代碼,我們可以指定要獲取的信息,將其從…

    編程 2025-04-28
  • 如何使用Python執行Shell命令並獲取執行過程信息

    本文將介紹如何使用Python執行Shell命令並獲取執行過程信息。我們將從以下幾個方面進行闡述: 一、執行Shell命令 Python內置的subprocess模塊可以方便地執行…

    編程 2025-04-28
  • Python實現身份信息模擬生成與查驗

    本文將從以下幾個方面對Python實現身份信息模擬生成與查驗進行詳細闡述: 一、身份信息生成 身份信息生成是指通過代碼生成符合身份信息規範的虛假數據。Python中,我們可以使用f…

    編程 2025-04-27
  • Dapper使用getschema獲取表信息

    本文旨在介紹Dapper中使用getschema獲取表信息的方法和注意事項。 一、獲取某張表的所有列信息 使用Dapper獲取某張表信息,可以使用 `IDbConnection.G…

    編程 2025-04-27
  • 已裝備我軍的空中信息化作戰平台

    本文將會從多個方面詳細闡述已裝備我軍的空中信息化作戰平台。 一、平台概述 已裝備我軍的空中信息化作戰平台是一個全新的作戰系統,具備實時數據採集、處理、分析、共享的能力。它可以在不同…

    編程 2025-04-27
  • 通過提交信息搜索-使用git

    本篇文章重點講解如何使用git通過提交信息來搜索。我們將從多個方面介紹如何使用git來搜索提交信息,並提供相應的代碼示例以供參考。 一、搜索方式 Git提供了三種搜索方式,分別為:…

    編程 2025-04-27
  • Linux查看系統信息

    一、CPU信息 Linux系統下,查看CPU的信息最常用的命令是lscpu。該命令可以顯示CPU架構、核心數量、線程數、緩存大小、CPU頻率等信息。例如: lscpu 該命令會輸出…

    編程 2025-04-24
  • 軟考 信息安全工程師

    軟考 信息安全工程師是一項技能型國家級資格認證考試,主要測試考生在信息安全領域的理論知識和實踐技能,是證明個人信息安全能力的重要證書。本文將從多個方面對軟考 信息安全工程師做詳細的…

    編程 2025-04-23

發表回復

登錄後才能評論