簡體   English   中英

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' 返回一個數據數組。

由於我的 php 升級到版本 8,可能會出現此錯誤,但我在文檔中找不到任何提示。 我嘗試刪除每一行,然后再試一次。 但這沒有幫助。

錯誤是因為你用雙引號包裹了常量。

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

選項
一個數組,指定要設置的選項及其值。 鍵應該是有效的 curl_setopt() 常量或它們的 integer 等效項

所以它應該是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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM