ホームページ >バックエンド開発 >PHPチュートリアル >cURL エラー 7 (「ホストに接続できませんでした」) が発生するのはなぜですか? どうすれば修正できますか?

cURL エラー 7 (「ホストに接続できませんでした」) が発生するのはなぜですか? どうすれば修正できますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-06 04:27:09836ブラウズ

Why Am I Getting cURL Error 7 (

cURL エラー コード 7 の解決: 接続の問題の調査

cURL で「ホストに接続できませんでした」エラーが発生するとイライラすることがあります。このエラーは、エラー コード 7 で示され、指定されたリモート サーバーへの接続を確立できないことを示しています。

この問題をトラブルシューティングするには、次のコード サンプルを検討してください。

function xml_post($post_xml, $url)
{
    $ch = curl_init();    // initialize curl handle
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_FAILONERROR, 1);          
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);    
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 50); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_xml); 
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);

    $data = curl_exec($ch);
    $curl_errno = curl_errno($ch);
    $curl_error = curl_error($ch);
    if ($curl_errno > 0) {
            echo "cURL Error ($curl_errno): $curl_error\n";
    } else {
            echo "Data received\n";
    }
    curl_close($ch);

    echo $data;
}

提供されたコードで、次のオプションが設定されていることを確認してください:

  • CURLOPT_URL: 接続しようとしている URL を確認してくださいto.
  • CURLOPT_FOLLOWLOCATION: リダイレクト全体でのリクエスト追跡を有効にします。
  • CURLOPT_TIMEOUT: ハングを防ぐために適切なタイムアウト期間を設定します。

エラーが解決しない場合は、次の点を考慮してください。考えられる原因:

ファイアウォールまたはネットワーク制限事項: 接続を妨げている可能性のあるファイアウォールまたはアクセス制御リストがないことを確認してください。

DNS の問題: リモート サーバーの DNS レコードが正しく構成されていることを確認してください。

ホストまたはサービスの可用性: リモート サーバーがオンラインであるかどうかを確認し、

テストとして、次の簡略化されたコードを試して Google に接続してください:

$ch = curl_init("http://google.com");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($ch);
print($data);

Google に接続できない場合は、問題はネットワーク設定にある可能性があります。 cURL スクリプト。

以上がcURL エラー 7 (「ホストに接続できませんでした」) が発生するのはなぜですか? どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。