ホームページ >バックエンド開発 >PHPチュートリアル >PHP の「file_get_contents()」が「HTTP リクエストに失敗しました」というメッセージで失敗するのはなぜですか? 解決策として cURL を使用するにはどうすればよいですか?

PHP の「file_get_contents()」が「HTTP リクエストに失敗しました」というメッセージで失敗するのはなぜですか? 解決策として cURL を使用するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-07 20:50:15415ブラウズ

Why is my PHP `file_get_contents()` failing with

PHP file_get_contents() ストリームをオープンできませんでした: HTTP リクエストの失敗

PHP の file_get_contents() 関数を使用して URL からコンテンツを取得しようとしたときを実行すると、「ストリームを開けませんでした: HTTP リクエストが失敗しました!」というエラー メッセージが表示される場合があります。この問題は、PHP が指定された URL への接続を確立できない場合に発生します。

問題のトラブルシューティング

エラー メッセージは、file_get_contents() によって HTTP リクエストが行われたことを示しています。失敗した。これにはいくつかの理由が考えられます:

  • ネットワーク接続: サーバーに安定したインターネット接続があり、ターゲット URL にアクセスできることを確認してください。
  • 無効な URL: 取得しようとしている URL が正しいことを確認してください。
  • HTTP の制限: HTTP リクエストには、レート制限やコンテンツ フィルタリングなどの特定の制限がある場合があります。アクセスしている URL に特別な要件や制限があるかどうかを確認してください。

代替手段としての cURL の使用

file_get_contents() が失敗した場合は、代替手段解決策は、HTTP リクエストを行うための一般的な PHP 拡張機能である cURL を使用することです。 cURL を使用すると、リクエスト構成をより詳細に制御でき、潜在的な問題のトラブルシューティングが可能になります。

cURL を使用したコード例

<?php

// Initialize a cURL handle
$curl_handle = curl_init();

// Set the URL to fetch
curl_setopt($curl_handle, CURLOPT_URL, 'http://###.##.##.##/mp/get?mpsrc=http://mybucket.s3.amazonaws.com/11111.mpg&mpaction=convert format=flv');

// Set a timeout for the connection
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);

// Request the content to be returned instead of printed
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);

// Set a user agent to identify your application
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Your application name');

// Execute the request and store the response
$query = curl_exec($curl_handle);

// Close the cURL handle
curl_close($curl_handle);

?>

結論

file_get_contents() を使用して URL からコンテンツを取得する場合は、URL が有効であり、ネットワーク接続の問題はありません。これらのチェックが失敗した場合は、より柔軟でトラブルシューティング機能が提供される cURL を代替手段として使用することを検討してください。

以上がPHP の「file_get_contents()」が「HTTP リクエストに失敗しました」というメッセージで失敗するのはなぜですか? 解決策として cURL を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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