Ralat PHP: "file_get_contents(): getaddrinfo failed: Nama atau perkhidmatan tidak diketahui"
Apabila cuba memuat turun imej daripada pelayan menggunakan fungsi file_get_contents() PHP, anda mungkin menghadapi ralat "file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name or service not known." Ini menunjukkan masalah dengan keupayaan pelayan anda untuk menyelesaikan nama domain dan menyambung ke rangkaian luaran.
Ralat ini sering timbul daripada masalah dengan konfigurasi DNS (Domain Name System) anda. Berikut ialah penjelasan terperinci tentang masalah dan penyelesaian yang mungkin:
Ralat:
Mesej ralat menunjukkan bahawa pelayan anda tidak berjaya menyelesaikan nama domain ke alamat IP menggunakan fungsi "getaddrinfo". Ini boleh berlaku disebabkan oleh pelayan DNS yang salah atau tidak boleh diakses, atau jika pelayan anda tidak mempunyai sambungan ke Internet.
Penyelesaian Kemungkinan:
1. Semak Pelayan DNS anda:
Pastikan fail /etc/resolv.conf anda mengandungi pelayan DNS yang sah. Anda boleh menggantikan pelayan DNS lalai dengan pelayan DNS awam seperti 8.8.8.8 dan 8.8.4.4 Google.
2. Sahkan Kesambungan Internet:
Semak sambungan Internet pelayan anda dengan melakukan ping rangkaian ke domain seperti "google.com" atau "8.8.8.8." Jika ping gagal, ia menunjukkan isu ketersambungan yang mesti diselesaikan sebelum resolusi DNS boleh berfungsi dengan betul.
3. Gunakan Fungsi getaddrinfo() PHP:
Sebagai alternatif, anda boleh menggunakan fungsi getaddrinfo() PHP secara manual untuk menyemak sama ada pelayan anda boleh menyelesaikan nama domain. Jika getaddrinfo() mengembalikan tatasusunan kosong, ia mengesahkan isu penyelesaian DNS.
Contoh:
<code class="php">$hostname = 'app6.pixlr.com'; $result = getaddrinfo($hostname, null); if (empty($result)) { echo 'DNS resolution failed for ' . $hostname; }</code>
Jika langkah di atas gagal menyelesaikan isu tersebut, anda mungkin perlu menghubungi pembekal pengehosan atau pentadbir rangkaian anda untuk mendapatkan bantuan lanjut dalam menyelesaikan masalah DNS dan isu sambungan rangkaian.
Atas ialah kandungan terperinci Mengapakah fungsi PHP `file_get_contents()` saya membuang ralat \'getaddrinfo gagal: Nama atau perkhidmatan tidak diketahui\' dan bagaimana saya boleh membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!