Maison >développement back-end >tutoriel php >Pourquoi mon PHP file_get_contents() ne parvient-il pas à charger les URL externes ?

Pourquoi mon PHP file_get_contents() ne parvient-il pas à charger les URL externes ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-31 20:43:17327parcourir

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

Comment activer le chargement d'URL externe pour PHP file_get_contents()

La fonction PHP file_get_contents() nous permet de récupérer le contenu d'un fichier ou d'une URL. Cependant, il arrive parfois qu'il ne parvienne pas à récupérer les URL externes, ce qui entraîne une réponse vide. Ce problème survient généralement en raison de paramètres de configuration PHP.ini spécifiques.

Enquête sur la configuration PHP.ini

Pour identifier la configuration problématique, vous pouvez vérifier les paramètres suivants :

  1. allow_url_fopen : Ce paramètre contrôle si PHP est autorisé à accéder aux URL externes. Vérifiez qu'il est défini sur « On ».
  2. file_get_contents.allow_http : Ce paramètre restreint file_get_contents() à l'accès uniquement aux URL HTTP. Assurez-vous qu'il est défini sur « On ».
  3. file_get_contents.readfile_disable : Ce paramètre désactive la capacité de file_get_contents() à accéder aux fichiers locaux sur le serveur. Si vous avez l'intention d'accéder aux URL locales et externes, définissez-le sur « Désactivé ».

Méthodes alternatives de chargement des URL externes

Si vous ajustez le PHP. ini ne résout pas le problème, vous pouvez envisager d'utiliser des méthodes alternatives pour charger des URL externes dans PHP :

  1. cURL : CURL est une bibliothèque qui fournit un moyen plus robuste d'envoyer et de récupérer des données à partir d'URL. L'extrait ci-dessous montre comment utiliser cURL pour récupérer le contenu d'une URL externe :
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');

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn