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

Langage PHP Discussion :

file_get_contents ne trouve pas un fichier


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Etudiant du Genie Logiciel
    Inscrit en
    Juillet 2011
    Messages
    397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Etudiant du Genie Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 397
    Points : 73
    Points
    73
    Par défaut file_get_contents ne trouve pas un fichier
    salut,

    ma fonction ci-dessus m'indique que "file_get_contents" ne trouve pas un fichier qui pourtant existe. je réussi a exécuter L’URL avec postman mais pas avec "file_get_contents"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    function service($reports)
    {
     
        global $database, $array;
        error_log("debut execution service");
     
        $url = $array['URL_ROOT'].'/func/xxxx.php';
     
        $file = 's_sendData.json';
     
        $current = file_get_contents($file);
     
        $current .= 'url getreport: ' . $url . "\n \n";
     
        $reports_count = count($reports);
     
        $current .= 'reports_count : ' . $reports_count . "\n \n";
     
        for ($i = 0; $i < $reports_count; $i++) {
     
            $postdata = http_build_query(
                array(
                    'cmd' => 'report',
                    'schedule' => true
            );
     
            $current .= 'post data : ' . json_encode($postdata) . "\n \n";
     
            $opts = array(
                'http' => array(
                    'method' => 'POST',
                    'header' => 'Content-type: application/x-www-form-urlencoded',
                    'content' => $postdata,
                ),
                'ssl' => array('verify_peer' => false),
            );
     
            $current .= 'opts : ' . json_encode($opts) . "\n";
     
            $context = stream_context_create($opts);
     
            try {
     
                if (file_exists($url)) {
                    $content = file_get_contents($url, false, $context);
                    $current .= 'content : ' . $content . "\n\n";
                }else{
                    $content = 'pas de fichier' ;
                    $current .= 'content : ' . $content . "\n\n";
                }
     
            } catch (Exception $e) {
                $current .= 'Exception reçue : ' . $e->getMessage() . "\n \n";
            }
     
            // Écrit le résultat dans le fichier
            file_put_contents($file, $current, FILE_APPEND);
        }
        error_log("fin execution service");
    }
    }
    il me dit que le fichier mentionné a l'URL n'existe pas et pourtant, il existe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Failed to open stream: No such file or directory in
    voici le contenu de la variable url :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://127.0.0.1/folder/func/xxxx.php
    merci

  2. #2
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 785
    Points : 3 048
    Points
    3 048
    Par défaut
    Bonjour

    Tu nous demandes de mettre notre doigt en l'air et de tenter de comprendre. Comment le pourrions-nous, nous n'avons aucune idée de ta structure ?

    $file ne contient qu'un nom de fichier et aucun nom de dossier ==> es-tu dans le bon dossier ? As-tu vérifié si le fichier existe (avec la fonction file_exists()).

    Note: ce que tu fais ici, c'est de présumer que le fichier existe càd que tu ne cherches même pas à savoir s'il est là, hop, tu veux en lire le contenu. Ce type de programmation est une porte ouverte aux bugs difficiles à débusquer. Quand on veut lire un fichier, on vérifie au préalable s'il existe et on jete une erreur (avec throw new exception lorsque le fichier est manquant. En programmation, il ne faut pas présumer; il faut d'abord vérifier

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 230
    Points
    20 230
    Par défaut
    Ce qui est certains c'est que file_gets_content fonctionne. Donc si elle ne trouve pas le fichier , c'est que tu lui demande de chercher au mauvais endroit.

  4. #4
    Membre régulier
    Homme Profil pro
    Etudiant du Genie Logiciel
    Inscrit en
    Juillet 2011
    Messages
    397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Etudiant du Genie Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 397
    Points : 73
    Points
    73
    Par défaut code mis a jour
    Citation Envoyé par grunk Voir le message
    Ce qui est certains c'est que file_gets_content fonctionne. Donc si elle ne trouve pas le fichier , c'est que tu lui demande de chercher au mauvais endroit.
    salut,
    désolé, je me suis trompé ou mal exprimé!! mon véritable problème se trouve a ce niveau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     $result = file_get_contents($url, false, $context);
    en effet, il me semble que file_get_contents n'execute pas l'url que je lui passe en paramètre. les données postées n'arrivent pas et pourtant avec Postman, ces données arrivent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
      function service($reports)
    {
     
        global $database, $array;
     
     
        $url = $array['URL_ROOT'].'/func/xxxx.php';
     
     
        $reports_count = count($reports);
     
     
     
        for ($i = 0; $i < $reports_count; $i++) {
     
            $postdata = http_build_query(
                array(
                    'cmd' => 'report',
                    'schedule' => true
            );
     
            $opts = array(
                'http' => array(
                    'method' => 'POST',
                    'header' => 'Content-type: application/x-www-form-urlencoded',
                    'content' => $postdata,
                ),
                'ssl' => array('verify_peer' => false),
            );
     
            $context = stream_context_create($opts);
     
            $result = file_get_contents($url, false, $context);
     
        }
       $result = null;
       unset($result);
    }
    }
    }
    que faire ?

    merci.

  5. #5
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 785
    Points : 3 048
    Points
    3 048
    Par défaut
    Clairement mal exprimé. Ton source, premier post ligne 10 fait référence à un fichier.

  6. #6
    Membre confirmé Avatar de licardentaistor
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2021
    Messages
    344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juillet 2021
    Messages : 344
    Points : 494
    Points
    494
    Par défaut
    Qu'est ce que tu veux faire exactement ? si c'est récupérer ce que te renvois une URL pourquoi tu n'utilises pas cURL ?

    si tu veux utiliser file_get_content il faut regarder le paramètre allow_url_fopen (https://www.php.net/manual/en/filesy...figuration.php)

Discussions similaires

  1. file_get_contents ne trouve pas un fichier qui existe
    Par laurentSc dans le forum Langage
    Réponses: 13
    Dernier message: 30/07/2013, 22h46
  2. ma dll ne trouve pas ses fichiers de configuration
    Par mokoyat dans le forum Windows
    Réponses: 3
    Dernier message: 04/09/2007, 18h16
  3. navigateur ne trouve pas le fichier PHP
    Par skandaboy dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 14/03/2007, 21h23
  4. Je ne trouve pas le fichier Struts-Config.xml
    Par masse dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 06/10/2006, 10h33
  5. [FEDORA] Je ne trouve pas les fichiers includesous Feodra core 3 ?
    Par sali dans le forum RedHat / CentOS / Fedora
    Réponses: 4
    Dernier message: 22/10/2005, 23h30

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