我遇到了服务器问题。我正在运行本地服务器(用于开发),我已将本地服务器从MAMP更改为XAMPP。但是,在XAMPP上,cURL选项CURLOPT_TIMEOUT_MS
或CURLOPT_CONNECTTIMEOUT_MS
会给我下一个错误:
警告:curl_setopt()期望参数2为long,字符串为
这是因为PHP还是cURL版本?可能是配置设置?
curl_setopt($this->ch, CURLOPT_CONNECTTIMEOUT_MS, 2500);
其他信息:
提前致谢。
编辑:似乎有一些关于错误和要设置的变量的混淆。该错误表明参数 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"
。就像错误状态一样,它是一个字符串而不是浮点数。
答案 0 :(得分:8)
由于某种原因,您的PHP版本中CURLOPT_CONNECTTIMEOUT_MS
定义不正确。我会检查你正在使用的PHP的任何分布,并找出它是否是一般错误。
正确的值为156
:您应该可以使用此代码:
curl_setopt($this->ch, /*CURLOPT_CONNECTTIMEOUT_MS */ 156, 2500);
请注意,您真的真的 需要添加评论,解释您为何会这样做。
答案 1 :(得分:8)
我有同样的问题,这解决了我。只需将此行添加到脚本的顶部即可。它仅在尚未定义时才定义缺失的常量。
if(!defined(CURLOPT_CONNECTTIMEOUT_MS))define('CURLOPT_CONNECTTIMEOUT_MS',156);