首頁 >後端開發 >php教程 >為什麼我的 PHP `file_get_contents()` 失敗並顯示'HTTP 請求失敗”,如何使用 cURL 作為解決方案?

為什麼我的 PHP `file_get_contents()` 失敗並顯示'HTTP 請求失敗”,如何使用 cURL 作為解決方案?

Patricia Arquette
Patricia Arquette原創
2024-12-07 20:50:15413瀏覽

Why is my PHP `file_get_contents()` failing with

PHP file_get_contents() 無法開啟串流:HTTP 要求失敗

嘗試使用PHP 的file_get_contents() 函數從您擷取內容時,可能會遇到錯誤訊息,指出「無法開啟流:HTTP 請求失敗!」當PHP無法與指定 URL 建立連線時,就會出現此問題。

問題排查

錯誤訊息表示 file_get_contents() 發出的 HTTP 請求失敗的。這可能是由於以下幾個原因造成的:

  • 網路連線:確保您的伺服器具有穩定的網路連線並可以存取目標 URL。
  • 無效的 URL: 驗證您嘗試取得的 URL 是否正確,並且可存取。
  • HTTP 限制: HTTP 請求可能有某些限制,例如速率限製或內容過濾。檢查您造訪的 URL 是否有任何特殊要求或限制。

使用cURL 作為替代方案

如果file_get_contents() 失敗,可以使用替代方案解決方案是使用cURL,這是一種流行的PHP 擴展,用於發出HTTP 請求。 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 有效且有沒有網路連線問題。如果這些檢查失敗,請考慮使用 cURL 作為替代方案,因為它提供了更大的靈活性和故障排除功能。

以上是為什麼我的 PHP `file_get_contents()` 失敗並顯示'HTTP 請求失敗”,如何使用 cURL 作為解決方案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn