我有服务器问题.我正在运行本地服务器(用于开发),我已将本地服务器从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
Run Code Online (Sandbox Code Playgroud)
有趣的事实:var_dump(CURLOPT_CONNECTTIMEOUT_MS);显示string(25) "CURLOPT_CONNECTTIMEOUT_MS".就像错误状态一样,它是一个字符串而不是浮点数.
出于某种原因,CURLOPT_CONNECTTIMEOUT_MS在您的PHP版本中定义不正确.我会检查你正在使用的PHP的任何分布,并找出它是否是一般错误.
正确的值是156:您应该能够使用它:
curl_setopt($this->ch, /*CURLOPT_CONNECTTIMEOUT_MS */ 156, 2500);
Run Code Online (Sandbox Code Playgroud)
NB,你真的真的真的需要添加注释解释你为什么这样做.
我有同样的问题,这解决了我.只需将此行添加到脚本的顶部即可.它仅在尚未定义时定义缺失的常量.
if(!defined(CURLOPT_CONNECTTIMEOUT_MS))define('CURLOPT_CONNECTTIMEOUT_MS',156);