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 :

fonction dans fonction? / file_get_contents, fopen


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2007
    Messages : 17
    Par défaut fonction dans fonction? / file_get_contents, fopen
    Bonjour,

    Un autre site me met à disposition une image différente chaque jour. Plutôt que de l'afficher directement sur mon site, je la copie sur mon serveur grâce à PHP et cela fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $distant = fopen("http://exemple.com/imagedujour/", "rb"); //ouvre le fichier distant (L'URL se termine bien ainsi) 
    $local = fopen("/[chemin_abosulu_de_mon_serveur/mondossier/image.jpg", "wb"); 
     
    // Copie les données sur mon serveur: 
    while (!feof($distant)) { 
        $data = fread($distant, 1024); 
        fwrite($local, $data); 
    } 
     
    fclose($local); 
    fclose($distant);
    Comme vous le voyez, j'enregistre l'image récupérée chaque jour sous le nom générique image.jpg. J'aimerais pouvoir remplacer ce nom générique par un nom que le service tiers m'indique dans un fichier à part (http://exemple.com/nomdufichier.php). Je dois donc récupérer le texte qui se trouve dans cette page avec la fonction 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
     
    $nom_fichier = file_get_contents("http://exemple.com/nomdufichier.php"); //récupére le nom du fichier qui est inscrit dans la page nomdufichier.php. 
     
    $distant = fopen("http://exemple.com/imagedujour/", "rb"); 
    $local = fopen("/[chemin_abosulu_de_mon_serveur/mondossier/".$nom_fichier, "wb"); // problème: ici, $nomfichier n'affiche rien. 
     
    // Copie les données sur mon serveur: 
    while (!feof($distant)) { 
        $data = fread($distant, 1024); 
        fwrite($local, $data); 
    } 
     
    fclose($local); 
    fclose($distant);

    Cette deuxième méthode ne fonctionne pas. Je pense que je ne peux pas intégrer ainsi $nom_fichier dans le fopen. mais comment faire? Je précise que si je fais un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo file_get_contents("http://exemple.com/nomdufichier.php");
    j'obtiens bien le nom de fichier qui est inscrit dans la page nomdufichier.php et que j'aimerais utiliser pour enregistrer l'image sur mon serveur.

    Merci beaucoup de votre aide.

  2. #2
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Bonjour,

    Il y a peut-être des caractères invisibles à la fin de $nom_fichier... Essaie en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nom_fichier = trim(file_get_contents("http://exemple.com/nomdufichier.php"));

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2007
    Messages : 17
    Par défaut
    La classe!

    C'était ça!

    Merci infiniment! J'ai passé la moitié de la nuit à me casser la tête là-dessus!

  4. #4
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Bonjour,

    Au passage, à moins d'être à 100 % sûr du site distant, le code utilisé tel quel présente une grosse faille de sécurité.

    Il faudrait vérifier que le nom de fichier renvoyé par le sire a bien une extension d'image, et ne fait pas de changement de répertoire. Il serait aussi bon de vérifier que le fichier récupéré est bien une image...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fonction dans fonction print_r
    Par reg34000 dans le forum Langage
    Réponses: 12
    Dernier message: 23/03/2013, 11h49
  2. Réponses: 5
    Dernier message: 03/05/2012, 17h08
  3. Passage d'une variable JS dans fonction dans innerHTML
    Par Pierrick81 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 22/08/2011, 19h12
  4. [VStudio 6] pb avec fonctions dans une DLL
    Par MogDeChNord dans le forum MFC
    Réponses: 8
    Dernier message: 08/01/2004, 08h57
  5. impossible d'utiliser ma fonction dans un insert
    Par caramel dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/04/2003, 15h04

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