curl_exec() 関数の失敗について
Web 開発では、エラーや予期しない動作は避けられません。 curl_exec() 関数の使用中に false 値を返す問題が発生した場合、エラー チェックと処理が重要になります。
エラー チェックと処理
まず、次のことを確認してください。 curl_init() 関数とcurl_exec() 関数の戻り値。エラーの場合は両方とも false を返します。さらに調査するには、curl_error() 関数とcurl_errno() 関数を利用します。これらの関数は、それぞれ詳細なエラー メッセージとコードを提供します。
サンプル エラー処理コード
これは修正版です。エラー処理を組み込んだコード:
try { $ch = curl_init(); // Check initialization and proceed if successful if ($ch === false) { throw new Exception('Failed to initialize curl'); } // Explicitly set the URL curl_setopt($ch, CURLOPT_URL, 'http://example.com/'); // Ensure return transfer to retrieve website content curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Add any additional options here $content = curl_exec($ch); // Check the return value of curl_exec() if ($content === false) { throw new Exception(curl_error($ch), curl_errno($ch)); } // Obtain HTTP return code for error checking (should be 200) $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); // Process the retrieved website content here } catch(Exception $e) { // Trigger a user error with detailed information trigger_error(sprintf( 'Curl failed with error #%d: %s', $e->getCode(), $e->getMessage() ), E_USER_ERROR); } finally { // Close the curl handle unless it failed to initialize if (is_resource($ch)) { curl_close($ch); } }
このコードは、各ステップでエラーを徹底的にチェックし、必要に応じて特定のエラー メッセージを提供します。
潜在的なエラーの原因
参考資料で述べたように、指定された $url パラメータが有効なドメインに解決できない場合、curl_init() は false を返すことがあります。 $url パラメーターを使用しなくても、エラーが発生する可能性があるため、戻り値を確認することの重要性が強調されます。
以上がcurl_exec() 関数で障害を特定して処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。