cURL ハンドラを使う Guzzle 7 のリクエストでは、低レベル curl オプション配列は PHP の整数 CURLOPT 定数をキーとして使います:

$options = [
    'curl' => [
        CURLOPT_PROXY => 'proxy.example',
        CURLOPT_PROXYPORT => 8080,
    ],
];

外側の Guzzle キー 'curl' は引用符で囲んだままにします。CURLOPT_PROXY と CURLOPT_PROXYPORT は引用符で囲まないでください。'CURLOPT_PROXY' と書くとその名前を持つ普通の文字列になり、PHP はそれを定数の数値に変換しません。

この違いが、キーは CURLOPT 定数または同等の整数でなければならないという curl_setopt_array の警告の理由です。プロキシのアドレスやアカウントを変更する前に配列の形を確認してください。この警告はハンドルの設定に関するもので、リモートのプロキシが接続を拒否した証拠ではありません。

低レベル cURL の動作が必要ないなら、Guzzle の通常のリクエストオプションのほうが簡単です:

$options = [
    'proxy' => 'http://proxy.example:8080',
];

意図したインターフェースを選び、そのキーの型をそろえてください。この形が正しければ、HTTP プロキシ一覧の HTTP エントリを使い、プロキシアカウントなしで許可された公開 URL へのリクエストのエンドポイントを用意できます。低レベル curl 配列には cURL ハンドラが必要です。配列があるというだけで別のハンドラが cURL になるわけではありません。

関連記事