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

Pourquoi mon PHP file_get_contents() ne parvient-il pas à récupérer les URL externes ?

DDD
DDDoriginal
2024-12-06 02:46:14642parcourir

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

PHP ini file_get_contents Problème avec l'URL externe

La fonction file_get_contents() permet à PHP de récupérer le contenu d'un fichier, y compris ceux situés sur URL externes. Cependant, dans certains cas, les utilisateurs peuvent rencontrer un problème où la fonction renvoie un résultat vide lorsqu'ils tentent d'accéder à une URL externe.

Conflits de configuration PHP.ini possibles

Ce problème pourrait être lié aux configurations PHP.ini, en particulier celles qui limitent l'accès aux URL externes. Pour déterminer la source du problème, il est nécessaire d'identifier les options de configuration pertinentes :

  • allow_url_fopen : Cette option contrôle si PHP peut ouvrir les URL. Vérifiez s'il est défini sur 0 (désactivé), ce qui empêcherait la fonction d'accéder au contenu externe.
  • allow_url_include : Semblable à allow_url_fopen, cette option permet à PHP de lire des fichiers à partir d'URL. Assurez-vous qu'il est défini sur 1 (activé).
  • safe_mode : le mode sans échec restreint certaines fonctionnalités PHP, y compris l'accès aux URL. Vérifiez que le mode sans échec est désactivé (défini sur Désactivé) dans php.ini.

Approche alternative : utilisation de cURL

Si la modification des paramètres PHP.ini n'est pas une option, une solution de contournement consiste à utiliser la bibliothèque cURL pour imiter la fonctionnalité de 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');

Cette fonction initialise un handle cURL, définit les options nécessaires et exécute la requête, renvoyant le contenu de l'URL spécifiée.

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