簡體   English   中英

PHP cURL超時無效

[英]PHP cURL timeout is not working

我有服務器問題。 我正在運行本地服務器(用於開發),我已將本地服務器從MAMP更改為XAMPP。 但是,在XAMPP上,cURL選項CURLOPT_TIMEOUT_MSCURLOPT_CONNECTTIMEOUT_MS給出了下一個錯誤:

警告:curl_setopt()期望參數2為long,給定字符串

這是因為PHP還是cURL版本? 也許配置設置?

curl_setopt($this->ch, CURLOPT_CONNECTTIMEOUT_MS, 2500);

附加信息:

  • OSX 10.6.8
  • PHP 5.3.1
  • cURL 7.19.7

提前致謝。


編輯:似乎有一些關於錯誤和要設置的變量的混淆。 該錯誤表明參數2無效。 不是參數3 所以CURLOPT_CONNECTTIMEOUT_MS似乎是個問題。

curl_setopt($this->ch, CURLOPT_CONNECTTIMEOUT_MS, 2500);
            ^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^
parameter:     #1                 #2               #3

有趣的事實: var_dump(CURLOPT_CONNECTTIMEOUT_MS); 顯示string(25) "CURLOPT_CONNECTTIMEOUT_MS" 就像錯誤狀態一樣,它是一個字符串而不是浮點數。

我有同樣的問題,這解決了我。 只需將此行添加到腳本的頂部即可。 它僅在尚未定義時定義缺失的常量。

if(!defined(CURLOPT_CONNECTTIMEOUT_MS))define('CURLOPT_CONNECTTIMEOUT_MS',156);

出於某種原因, CURLOPT_CONNECTTIMEOUT_MS在您的PHP版本中定義不正確。 我會檢查你正在使用的PHP的任何分布,並找出它是否是一般錯誤。

正確的值是156 :你應該能夠使用它:

curl_setopt($this->ch, /*CURLOPT_CONNECTTIMEOUT_MS */ 156, 2500);

NB,你真的真的真的需要添加注釋解釋你為什么這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM