IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

file_get_contents() incompatible https


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 73
    Points : 54
    Points
    54
    Par défaut file_get_contents() incompatible https
    Bonjour.

    Lorsque j'utilise la fonction file_get_contents() sur une url de type https, j'obtiens l'erreur :
    [function.file-get-contents]: failed to open stream: Invalid argument in test.php on line xxx
    Je sais que les versions précédentes avaient ce bug.
    J'ai essayé en upgradant mon php 5.2 en 5.2.1 sans succés.
    J'utilise WAMP 1.6.6

    Merci pour votre aide.

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Perso , je pense qu'avec un peu de code (au moins la ligne d'appel) , on pourra y voir plus clair !
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  3. #3
    Membre éclairé
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Points : 708
    Points
    708
    Par défaut
    en général si l'url passée est bonne, les problèmes entre file_get_contents et https renvoient plutôt une erreur parlant de wrapper ou de ssl non ?

    comme dit RideKick, montre nous ton appel
    tu peux aussi regarder du côté de curl
    Dia [ Page DVP ] [ Site pro ]

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 73
    Points : 54
    Points
    54
    Par défaut
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $contents = file_get_contents("https://www.bwin.com/betsnew.aspx?leagueIDs=34");
    Et voici ce que j'obtiens :
    Warning: file_get_contents(https://www.bwin.com/betsnew.aspx?leagueIDs=34) [function.file-get-contents]: failed to open stream: Invalid argument in tests.php on line xx
    Merci pour votre réponse.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 73
    Points : 54
    Points
    54
    Par défaut
    Et avec cURL pas mieux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ch = curl_init("https://www.bwin.com/betsnew.aspx?leagueIDs=34");
    $fp = fopen("test.txt", "w");
     
    curl_setopt($ch, CURLOPT_FILE, $fp);
    curl_setopt($ch, CURLOPT_HEADER, 0);
     
    curl_exec($ch);
    curl_close($ch);
    fclose($fp);
    me donne :
    Fatal error: Call to undefined function curl_init()

  6. #6
    Membre éclairé
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Points : 708
    Points
    708
    Par défaut
    la page que tu indiques, j'arrive pas à l'accéder... soit leur serveur a un soucis, soit elle n'existe pas et c'est alors normal que file_get_contents puisse pas la lire

    pour curl t'as bien installer la librairie ?
    Dia [ Page DVP ] [ Site pro ]

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 73
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par Dia_FR
    la page que tu indiques, j'arrive pas à l'accéder... soit leur serveur a un soucis, soit elle n'existe pas et c'est alors normal que file_get_contents puisse pas la lire
    L url fonctionne tres bien.
    Essaie avec celle ci :
    https://www.nordicbet.com/selection?...tegory_ids=10#

    pour curl t'as bien installer la librairie ?
    Comment dois je faire ?
    J ai pourtant bien decommenter la ligne
    extension=php_curl.dll
    du php.ini

  8. #8
    Membre éclairé
    Avatar de Dia_FR
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2006
    Messages : 512
    Points : 708
    Points
    708
    Par défaut
    ouais cette fois j'ai pu accéder à la page, hier soir non

    pour installer curl, c'est tout marqué http://us2.php.net/manual/fr/ref.curl.php

    désolé je peux pas t'aider bien plus que ça, je vois pas trop d'où peut venir le soucis
    Dia [ Page DVP ] [ Site pro ]

  9. #9
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    J'ai apris hier qu'on pouvaut utiliser fopen() si allow_url_open() etait activée ...

    par contre la ou je suis pas sur que ça puisse marcher dans ton cas c est que tu accede a une page securisée....

    https://www.bwin.com/betsnew.aspx?leagueIDs=34
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 73
    Points : 54
    Points
    54
    Par défaut
    En fait, c'était tout bête.
    J'ai décommenté la ligne du fichier php.ini qui se trouvait dans le dossier php alors que c'est le fichier php.ini du dossier Apache2 qu'il fallait modifier.

    Le problème qui s'est posé ensuite, c'est la récupération d'une page blanche.
    Je l'ai résolu en utilisant l'option CURLOPT_SSL_VERIFYPEER (égal à 0).

    Mon problème est donc résolu mais cela n'explique pas pourquoi la fonction file_get_contents() ne récupère pas le html.
    Je laisse donc le soin à un modérateur de marquer le sujet comme 'Résolu' s'il le considère comme tel.

    Merci à vous de m'avoir aiguillé.

  11. #11
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Citation Envoyé par jpascal
    mais cela n'explique pas pourquoi la fonction file_get_contents() ne récupère pas le html.
    Peut-être que la réponse se trouve ici :
    AVERTISSEMENT
    Lorsque vous utilisez SSL, le serveur IIS de Microsoft violera le protocole en fermant la connexion sans envoyer l'indicateur close_notify. PHP le reportera en tant que "SSL: Fatal Protocol Error" quand vous arrivez à la fin des données. L'astuce est de baisser le niveau de la directive error_reporting pour ne pas inclure les warnings. À partir de PHP 4.3.7, le bogue est détecté automatiquement lors de l'ouverture du flux en utilisant https:// et supprimera cet avertissement pour vous. Si vous utilisez fsockopen() pour créer une socket ssl://, vous devez vous occuper vous-même de supprimer l'erreur
    http://php.bigbiz.com/manual/fr/func...t-contents.php
    De retour parmis vous après 10 ans!!

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 73
    Points : 54
    Points
    54
    Par défaut
    Ce n'est pas cela car ma version est la 5.2.0

Discussions similaires

  1. Problème avec file_get_contents "HTTP request failed!"
    Par mikaelhervouet dans le forum Langage
    Réponses: 2
    Dernier message: 21/06/2012, 09h17
  2. [PHP 5.0] Utiliser des urls en HTTPS avec file_get_contents/getimagesize
    Par F2000 dans le forum Langage
    Réponses: 0
    Dernier message: 16/11/2011, 09h51
  3. Exécuter une requète HTTP (file_get_contents)
    Par Lord Yu dans le forum Langage
    Réponses: 4
    Dernier message: 28/10/2009, 09h41
  4. Réponses: 2
    Dernier message: 24/08/2008, 18h58
  5. [web] rapatrier un document via HTTP
    Par ddhia dans le forum Web
    Réponses: 2
    Dernier message: 08/04/2003, 11h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo