Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah PHP `file_get_contents()` saya gagal dengan 'permintaan HTTP gagal,' dan bagaimana saya boleh menggunakan cURL sebagai penyelesaian?

Mengapakah PHP `file_get_contents()` saya gagal dengan 'permintaan HTTP gagal,' dan bagaimana saya boleh menggunakan cURL sebagai penyelesaian?

Patricia Arquette
Patricia Arquetteasal
2024-12-07 20:50:15469semak imbas

Why is my PHP `file_get_contents()` failing with

PHP file_get_contents() Gagal Membuka Strim: Kegagalan Permintaan HTTP

Apabila cuba mendapatkan semula kandungan daripada URL menggunakan fungsi file_get_contents() PHP , anda mungkin menghadapi mesej ralat yang menyatakan "gagal membuka strim: Permintaan HTTP gagal!" Isu ini timbul apabila PHP tidak dapat mewujudkan sambungan ke URL yang ditentukan.

Menyelesaikan Masalah Isu

Mesej ralat menunjukkan bahawa permintaan HTTP dibuat oleh file_get_contents() gagal. Ini mungkin disebabkan oleh beberapa sebab:

  • Kesambungan rangkaian: Pastikan pelayan anda mempunyai sambungan internet yang stabil dan boleh mengakses URL sasaran.
  • URL Tidak Sah: Sahkan bahawa URL yang anda cuba ambil adalah betul dan boleh diakses.
  • Penghadan HTTP: Permintaan HTTP boleh mempunyai sekatan tertentu, seperti had kadar atau penapisan kandungan. Semak sama ada URL yang anda akses mempunyai sebarang keperluan atau sekatan khas.

Menggunakan cURL sebagai Alternatif

Dalam kes fail_get_contents() gagal, alternatif penyelesaiannya ialah menggunakan cURL, sambungan PHP yang popular untuk membuat permintaan HTTP. cURL menyediakan lebih kawalan ke atas konfigurasi permintaan dan membenarkan untuk menyelesaikan masalah yang mungkin timbul.

Contoh Kod menggunakan 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);

?>

Kesimpulan

Apabila menggunakan file_get_contents() untuk mengambil kandungan daripada URL, pastikan URL itu sah dan tiada isu sambungan rangkaian. Jika semakan ini gagal, pertimbangkan untuk menggunakan cURL sebagai alternatif, kerana ia memberikan lebih fleksibiliti dan keupayaan menyelesaikan masalah.

Atas ialah kandungan terperinci Mengapakah PHP `file_get_contents()` saya gagal dengan 'permintaan HTTP gagal,' dan bagaimana saya boleh menggunakan cURL sebagai penyelesaian?. 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