Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah PHP file_get_contents() saya gagal mendapatkan semula URL luaran?

Mengapakah PHP file_get_contents() saya gagal mendapatkan semula URL luaran?

DDD
DDDasal
2024-12-06 02:46:14652semak imbas

Why is my PHP file_get_contents() failing to retrieve external URLs?

PHP ini file_get_contents Isu dengan URL Luaran

Fungsi file_get_contents() membenarkan PHP untuk mendapatkan semula kandungan fail, termasuk yang terdapat pada URL luaran. Walau bagaimanapun, dalam kes tertentu, pengguna mungkin menghadapi isu di mana fungsi mengembalikan hasil kosong apabila cuba mengakses URL luaran.

Kemungkinan Konflik Konfigurasi PHP.ini

Isu ini mungkin berkaitan dengan konfigurasi PHP.ini, khususnya yang mengehadkan akses URL luaran. Untuk menentukan punca masalah, adalah perlu untuk mengenal pasti pilihan konfigurasi yang berkaitan:

  • allow_url_fopen: Pilihan ini mengawal sama ada PHP boleh membuka URL. Semak sama ada ia ditetapkan kepada 0 (dilumpuhkan), yang akan menghalang fungsi daripada mengakses kandungan luaran.
  • allow_url_include: Sama seperti allow_url_fopen, pilihan ini membenarkan PHP membaca fail daripada URL. Pastikan ia ditetapkan kepada 1 (didayakan).
  • safe_mode: Mod selamat mengehadkan ciri PHP tertentu, termasuk akses URL. Sahkan bahawa mod selamat dilumpuhkan (ditetapkan kepada Mati) dalam php.ini.

Pendekatan Alternatif: Menggunakan cURL

Jika mengubah suai tetapan PHP.ini bukan pilihan, penyelesaiannya ialah menggunakan perpustakaan cURL untuk meniru kefungsian file_get_contents():

function get_content($URL){
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_URL, $URL);
      $data = curl_exec($ch);
      curl_close($ch);
      return $data;
}

echo get_content('http://example.com');

Fungsi ini memulakan pemegang cURL, menetapkan pilihan yang diperlukan dan melaksanakan permintaan, mengembalikan kandungan URL yang ditentukan.

Atas ialah kandungan terperinci Mengapakah PHP file_get_contents() saya gagal mendapatkan semula URL luaran?. 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