警告:curl_setopt()期望参数2为long,给定字符串

1 php curl

试图为CURL编写init函数.但有错误

警告:curl_setopt()期望参数2为long,给定字符串

代码很简单.

$config['CURLOPT_URL'] = "https://weburl/index.action";
$config['CURLOPT_VERBOSE'] = 0;
$config['CURLOPT_SSLVERSION'] = 3;
$config['CURLOPT_SSL_VERIFYPEER'] = FALSE;
$config['CURLOPT_SSL_VERIFYHOST'] = 2;
$config['CURLOPT_FOLLOWLOCATION'] = 0;

$tuCurl = curl_init();
foreach($this->config as $key => $val)
{
    curl_setopt($tuCurl, $key, $val);
}
Run Code Online (Sandbox Code Playgroud)

Fed*_*kun 6

$key应该是常量(长类型),而不是字符串,所以

$config['CURLOPT_URL'] = "https://weburl/index.action";
$config['CURLOPT_VERBOSE'] = 0;
$config['CURLOPT_SSLVERSION'] = 3;
$config['CURLOPT_SSL_VERIFYPEER'] = FALSE;
$config['CURLOPT_SSL_VERIFYHOST'] = 2;
$config['CURLOPT_FOLLOWLOCATION'] = 0;
Run Code Online (Sandbox Code Playgroud)

应该

$config[CURLOPT_URL] = "https://weburl/index.action";
$config[CURLOPT_VERBOSE] = 0;
$config[CURLOPT_SSLVERSION] = 3;
$config[CURLOPT_SSL_VERIFYPEER] = FALSE;
$config[CURLOPT_SSL_VERIFYHOST] = 2;
$config[CURLOPT_FOLLOWLOCATION] = 0;
Run Code Online (Sandbox Code Playgroud)

但是,更好的方法是使用curl_setopt_array而不是curl_setopt.

curl_setopt_array($tuCurl, $config);
Run Code Online (Sandbox Code Playgroud)