首頁  >  文章  >  後端開發  >  為什麼我的 PHP `file_get_contents()` 函數會在遠端伺服器上拋出 HTTP 403 禁止錯誤?

為什麼我的 PHP `file_get_contents()` 函數會在遠端伺服器上拋出 HTTP 403 禁止錯誤?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-30 05:58:27520瀏覽

Why Is My PHP `file_get_contents()` Function Throwing an HTTP 403 Forbidden Error on Remote Servers?

PHP 的file_get_contents() 在遠端伺服器上因HTTP 403 禁止錯誤而失敗

使用PHP 的file_get_contents() 函數從Web檢索內容時頁面,即使它在本地運行,您也可能會在伺服器上遇到HTTP 403 Forbidden 錯誤。要解決此問題,請考慮以下事項:

1.使用PHP 實用程式進行偵錯

PHP 提供偵錯選項,例如:

  • $http_response_header 變數:在每次file_get_contents() 呼叫後儲存回應HTTP 標頭。
  • ignore_errors 上下文選項:允許獲取實際回應,揭示 403 錯誤的原因。

2.解決缺少 HTTP 標頭的問題

您的請求可能缺少必需的 HTTP 標頭,例如 Referer 或 User-Agent。大多數瀏覽器使用以下使用者代理:

  • Chrome:Mozilla/5.0(Windows NT 10.0;WOW64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/50.0.2661.1026/🎜>
  • Firefox:Mozilla/5.0(Windows NT 10.0;Win64;x64;rv:75.0)Gecko/20100101 Firefox/75.0

您可以使用stream_context_create()建立一個帶有偽造用戶代理的上下文:

此請求將偽造用戶代理並將其發送到指定的URL.
<code class="php">$context = stream_context_create(
    array(
        "http" => array(
            "header" => "User-Agent: <Your User Agent>"
        )
    )
);

echo file_get_contents("www.google.com", false, $context);</code>

參考文獻:

[stream_context_create()](https://www.php.net/manual/en/function.stream-context -create.php)

以上是為什麼我的 PHP `file_get_contents()` 函數會在遠端伺服器上拋出 HTTP 403 禁止錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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