Heim > Backend-Entwicklung > PHP-Tutorial > Warum kann mein PHP file_get_contents() keine externen URLs laden?

Warum kann mein PHP file_get_contents() keine externen URLs laden?

Susan Sarandon
Freigeben: 2024-12-31 20:43:17
Original
322 Leute haben es durchsucht

Why is my PHP file_get_contents() Failing to Load External URLs?

So aktivieren Sie das Laden externer URLs für PHP file_get_contents()

Mit der PHP-Funktion file_get_contents() können wir den Inhalt einer Datei oder URL abrufen. Allerdings kann es manchmal vorkommen, dass der Abruf externer URLs fehlschlägt, was zu einer leeren Antwort führt. Dieses Problem tritt typischerweise aufgrund bestimmter PHP.ini-Konfigurationseinstellungen auf.

Untersuchung der PHP.ini-Konfiguration

Um die problematische Konfiguration zu identifizieren, können Sie die folgenden Einstellungen überprüfen:

  1. allow_url_fopen: Diese Einstellung steuert, ob PHP auf externe URLs zugreifen darf. Stellen Sie sicher, dass es auf „Ein“ eingestellt ist.
  2. file_get_contents.allow_http: Diese Einstellung beschränkt file_get_contents() auf den ausschließlichen Zugriff auf HTTP-URLs. Stellen Sie sicher, dass es auf „Ein“ eingestellt ist.
  3. file_get_contents.readfile_disable: Diese Einstellung deaktiviert die Fähigkeit von file_get_contents(), auf lokale Dateien auf dem Server zuzugreifen. Wenn Sie sowohl auf lokale als auch auf externe URLs zugreifen möchten, stellen Sie die Option auf „Aus“.

Alternative Methoden zum Laden externer URLs

Bei Anpassung von PHP. Wenn die INI-Einstellungen das Problem nicht lösen, können Sie alternative Methoden zum Laden externer URLs in Betracht ziehen PHP:

  1. cURL: CURL ist eine Bibliothek, die eine robustere Möglichkeit zum Senden und Abrufen von Daten von URLs bietet. Das folgende Snippet zeigt, wie Sie mit cURL den Inhalt einer externen URL abrufen:
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');
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum kann mein PHP file_get_contents() keine externen URLs laden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage