Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa PHP Saya Fungsi `file_get_contents()` Melemparkan Ralat Terlarang HTTP 403 pada Pelayan Jauh?

Mengapa PHP Saya Fungsi `file_get_contents()` Melemparkan Ralat Terlarang HTTP 403 pada Pelayan Jauh?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-30 05:58:27522semak imbas

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

file_get_contents() PHP Gagal dengan Ralat Terlarang HTTP 403 pada Pelayan Jauh

Apabila menggunakan fungsi file_get_contents() PHP untuk mendapatkan semula kandungan dari web jauh halaman, anda mungkin menghadapi ralat HTTP 403 Forbidden pada pelayan anda walaupun ia berfungsi secara setempat. Untuk menyelesaikan masalah ini, pertimbangkan perkara berikut:

1. Nyahpepijat dengan Utiliti PHP

PHP menyediakan pilihan penyahpepijatan, seperti:

  • pembolehubah $http_response_header: Menyimpan pengepala HTTP respons selepas setiap panggilan file_get_contents().
  • pilihan konteks abaikan_errors: Membenarkan respons sebenar diperoleh, mendedahkan sebab ralat 403.

2. Menangani Pengepala HTTP yang Kurang

Permintaan anda mungkin kekurangan pengepala HTTP yang diperlukan, seperti Perujuk atau Ejen Pengguna. Kebanyakan penyemak imbas menggunakan ejen pengguna berikut:

  • Chrome: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, seperti Gecko) Chrome/50.0.2661.102 Safari/537.36Firefox: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
3. Ejen Pengguna Memalsukan

Anda boleh menggunakan stream_context_create() untuk mencipta konteks dengan ejen pengguna palsu:

Permintaan ini akan memalsukan ejen pengguna dan menghantarnya kepada yang ditentukan 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>

Rujukan:

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

Atas ialah kandungan terperinci Mengapa PHP Saya Fungsi `file_get_contents()` Melemparkan Ralat Terlarang HTTP 403 pada Pelayan Jauh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn