首頁 >後端開發 >php教程 >PHP 中的 file_get_contents() 可以傳送自訂 HTTP 標頭嗎?

PHP 中的 file_get_contents() 可以傳送自訂 HTTP 標頭嗎?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-10 05:42:12525瀏覽

Can file_get_contents() in PHP Send Custom HTTP Headers?

使用 file_get_contents() 自訂 HTTP 標頭

PHP 的 file_get_contents() 函數是用來擷取 Web 資源的多功能工具。它通常與有限的選項一起使用,讓用戶想知道它的全部功能。特別是,使用 file_get_contents() 發送自訂 HTTP 標頭一直是個爭論的話題。

這可能嗎?

是的,可以傳送自訂 HTTP 標頭使用 file_get_contents()。這可以透過使用stream_context_create()來建立流上下文並在http選項中設定所需的標頭來實現。

// Create a stream context with custom headers
$opts = [
    "http" => [
        "method" => "GET",
        "header" => "Accept-language: en\r\nCookie: foo=bar\r\n"
    ]
];
$context = stream_context_create($opts);

// Retrieve the web resource using the custom stream context
$file = file_get_contents('http://www.example.com/', false, $context);

在此範例中,我們設定「Accept-language」和「Cookie」標頭,但您可以根據需要添加任何有效的 HTTP 標頭。

替代方案方法

雖然帶有自訂流上下文的file_get_contents() 是一個可行的選項,但還有其他函數可用於發送自訂HTTP 標頭。

  • curl_init():提供更多對 HTTP 請求的細微控制,包括設定自訂標頭的能力。
  • fopen() 與$protocol == 'http:':建立允許標頭操作的 HTTP 串流資源。

選擇使用哪個函數取決於項目的特定要求和偏好。

以上是PHP 中的 file_get_contents() 可以傳送自訂 HTTP 標頭嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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