cURL包含无效的cURL选项



我从PHP 7.4升级到PHP 8,突然在我的cURL请求中出现了这个错误:

Fatal error: Uncaught ValueError: curl_setopt_array(): Argument #2 ($options) contains an invalid cURL option in ...

我使用以下代码来构建curl:

$options = array (
"CURLOPT_POST" => true,
"CURLOPT_HEADER" => true,
"CURLOPT_URL" => "https://example.example.com/api/example.php",
"CURLOPT_FRESH_CONNECT" => true,
"CURLOPT_RETURNTRANSFER" => true,
"CURLOPT_FORBID_REUSE" => true,
"CURLOPT_TIMEOUT" => 10,
"CURLOPT_FAILONERROR" => true,
"CURLOPT_POSTFIELDS" => $this->buildPostFields($postData),        
"CURLOPT_HTTPAUTH" => "CURLAUTH_BASIC",
"CURLOPT_SSL_VERIFYPEER" => false //REMOVE IN PRODUCTION, IGNORES SELFSIGNED SSL            
);            
$ch = curl_init();
curl_setopt_array($ch, $options);

目标文件始终是php扩展名。"buildPostFields"返回一个数据数组。

这个错误可能是因为我的php升级到了版本8,但我在文档中找不到任何提示。我试着删除每一行,然后再试一次。但这无济于事。

错误是因为您用双引号包装了常量。

curl_setopt_array(CurlHandle$handle,array$options(:bool

options
一个数组,指定要设置的选项及其值键应该是有效的curl_setopt((常量或它们的整数等价物

所以应该是CONSTANT_NAME => value

$options = array (
CURLOPT_POST => true,
CURLOPT_HEADER => true,
CURLOPT_URL => "https://example.example.com/api/example.php",
CURLOPT_FRESH_CONNECT => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FORBID_REUSE => true,
CURLOPT_TIMEOUT => 10,
CURLOPT_FAILONERROR => true,
CURLOPT_POSTFIELDS => $this->buildPostFields($postData),           
CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
CURLOPT_SSL_VERIFYPEER => false //REMOVE IN PRODUCTION, IGNORES SELFSIGNED SSL            
);            
$ch = curl_init();
curl_setopt_array($ch, $options);

最新更新