如何解决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);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。