cURL 包含无效的 cURL 选项
cURL contains an invalid cURL option
我正在从 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' returns 数据数组。
这个错误可能是因为我 php 升级到版本 8,但我在文档中找不到任何提示。
我试着删除每一行,然后再试一次。但是没有用。
错误是因为您用双引号将常量括起来了。
curl_setopt_array ( CurlHandle $handle , array $options ) : bool
options
An array specifying which options to set and their values. The keys should be valid curl_setopt() constants or their
integer equivalents.
所以应该是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);
我正在从 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' returns 数据数组。
这个错误可能是因为我 php 升级到版本 8,但我在文档中找不到任何提示。 我试着删除每一行,然后再试一次。但是没有用。
错误是因为您用双引号将常量括起来了。
curl_setopt_array ( CurlHandle $handle , array $options ) : bool
options
An array specifying which options to set and their values. The keys should be valid curl_setopt() constants or their integer equivalents.
所以应该是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);