我遇到服务器问题。我正在运行一个本地服务器(用于开发),我已经将本地服务器从MAMP更改为XAMPP。然而,在XAMPP上,cURL选项CURLOPT_TIMEOUT_MS
或CURLOPT_CONNECTTIMEOUT_MS
会给我下一个错误:
警告:curl_setopt()要求参数2较长,字符串给定
这是因为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"
。就像错误状态一样,它是一个字符串而不是浮点值。
由于某些原因,CURLOPT_CONNECTTIMEOUT_MS
在您的PHP版本中定义不正确。我会检查一下你使用的PHP的任何发行版,看看它是否是一个通用的bug。
正确的值是156
:您应该可以使用它:
curl_setopt($this->ch, /*CURLOPT_CONNECTTIMEOUT_MS */ 156, 2500);
注意,您需要添加注释来解释为什么要这样做。
我遇到了同样的问题,这帮我解决了。只需将这一行添加到脚本的顶部即可。它只在尚未定义时定义缺少的常量。
if(!defined(CURLOPT_CONNECTTIMEOUT_MS))define('CURLOPT_CONNECTTIMEOUT_MS',156);