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 :

base64_decode dans une boucle for


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut base64_decode dans une boucle for
    Bonjour à tous.

    Je rencontre un petit problème sur la fonction base64_decode intégrée dans une boucle for.

    J'ai deux fichiers txt, comportant les chaines à traiter. Après traitement, il s'agit de fichier son au format wav.

    Si je lance le script avec un seul fichier txt, aucun problème, je récupère mon fichier son. Par contre, si je fais une boucle pour traiter les deux fichiers, je n'en récupère qu'un seul qui fait le poids des deux réunis.

    Comme ci, base64_decode compilait les deux chaines pour n'extraire qu'un seul fichier. Hors, lorsque je lance le fichier son, il n'y a qu'un seul morceau joué et pas les deux mis bout à bout.

    Je mets le code bien qu'il soit des plus simples et fonctionnel si chaque fichier est traité à part :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
     
    header('Content-Type: audio/x-wav');
    $tableau = array("chaine0.txt", "chaine1.txt");
     
        for($x = 0; $x < 2; $x++){
     
            header('Content-disposition: attachment; filename='.$tableau[$x].'.wav');
     
            echo base64_decode(file_get_contents($tableau[$x]));
        }
     
    ?>
    Merci

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Quel est ton but ?

    Si tu echo deux fois, la fin de ton script aura bien output les bytes des deux fichiers décodés, à la suite donc ....

    Si c'est du wav, le lecteur peut lire qu'un seul fichier, car le wave contient des en-têtes qui peuvent être lu qu'une seule fois en début de fichier.

    Le lecteur ne comprends pas quand il rencontre le deuxième en-tête.

  3. #3
    Membre averti Avatar de FredPsy
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Décembre 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 285
    Points : 342
    Points
    342
    Par défaut
    Bonjour,

    J'explique un peu plus. Je dispose d'un fichier pouvant contenir de un à n fichiers wav encodés en base64. Mon but est de récupérer les n chaines encodées et d'enregistrer sur le disque dur les fichiers sons en question.

    Par exemple :
    Mon fichier de départ comporte deux fichiers sons encodés.
    A l'arrivée, je dois avoir deux fichiers wav différents, enregistrés sur mon disque dur et non pas un seul comme c'est le cas avec mon script.

Discussions similaires

  1. multi ouverture de la console dans une boucle for
    Par jamesleouf dans le forum C++
    Réponses: 2
    Dernier message: 16/03/2006, 21h26
  2. Shell - Erreur dans une boucle for
    Par claralavraie dans le forum Linux
    Réponses: 4
    Dernier message: 11/01/2006, 13h45
  3. Problème avec une DLL dans une boucle For
    Par BraDim dans le forum Langage
    Réponses: 5
    Dernier message: 20/09/2005, 12h22
  4. [batch] incrémentation dans une boucle for
    Par bart64 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 08/09/2004, 20h05
  5. Réponses: 3
    Dernier message: 06/07/2004, 10h21

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