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 :

Temps d'éxecution de la fonction copy


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 4
    Par défaut Temps d'éxecution de la fonction copy
    Bonjour,

    Je vous explique un peu le contexte :
    J'ai une page html (ne tournant qu'en local) contenant une balise audio.
    J'aimerais copier un fichier du disque dur vers les répertoires accessibles par le code html pour permettre à cette balise audio de le lire.

    Voilà ce que j'ai écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    	if(!copy('D:/Logiciels/aa.mp3','a/aa.mp3'))
    		echo "erreur copy";
    ?>
     
    <audio src="a/aa.mp3" controls="controls">
    	fail
    </audio>
    Lorsque la fonction copy n'est pas présente et que je fait un copier/coller du fichier à la main, la balise audio fonctionne correctement.
    Avec la fonction copy, la copie a bien lieu, mais la balise audio agit comme si le fichier n'existait pas.
    J'ai tenté de mettre un sleep(1); après le if et la balise audio n'a plus de problème.

    J'imagine que ça vient du fait que la fonction copy n'a pas terminé lorsque la balise audio tente de lire le fichier. D'après vous, c'est bien ça ?
    Si oui, comment faire pour savoir quand la fonction copy a terminé ? Ou comment faire quelque chose de plus élégant que le sleep ?

  2. #2
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Etant donné que la balise audio est gérée du côté du navigateur, et qu'à ce moment précis le serveur a déjà finit son boulot, j'en conclu que ton problème n'a pas de rapport avec le temps d'exécution de la fonction copy (bien que tout ce que tu racontes laisse penser le contraire )

    Aussi, ton code devrait s'imbriquer de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php if(copy('D:/Logiciels/aa.mp3','a/aa.mp3')): ?>
     
    <audio src="a/aa.mp3" controls="controls">
       Votre navigateur ne supporte pas la lecture de fichiers audio.
    </audio>
     
    <?php endif; ?>
    Si la balise audio s'affiche cela signifie que la copie s'est bien déroulée.

    Ou alors ya un truc que je pige pas !-)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 4
    Par défaut
    Je me disais aussi que c'était bizarre comme explication ^^

    J'ai testé le code que tu proposes.
    La balise audio s'affiche mais les boutons restent grisés (comme dans mes tests), comme si le fichier n'était pas trouvé (j'ai aussi testé avec l'attribut autoplay, mais aucun son n'arrive).
    Le fichier aa.mp3 est bien présent dans le répertoire a et j'arrive à l'ouvrir avec un lecteur audio.

    Sinon j'utilise Wamp, je ne sais pas si ça peut être à l'origine d'un problème.

  4. #4
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Juste par curiosité, pourquoi est-ce que tu dois copier le fichier à chaque fois que tu veux afficher ta page ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php 
    $ok = TRUE;
    if(!file_exists('a/aa.mp3'){
        $ok = copy('D:/Logiciels/aa.mp3','a/aa.mp3');
    }
     
    if($ok){
    ?>
    <audio src="a/aa.mp3" controls="controls">
       Votre navigateur ne supporte pas la lecture de fichiers audio.
    </audio>
    <?php } ?>
    Je ne pense pas que Wamp ait un rapport avec le souci.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 4
    Par défaut
    Citation Envoyé par ThomasR Voir le message
    Juste par curiosité, pourquoi est-ce que tu dois copier le fichier à chaque fois que tu veux afficher ta page ?
    En fait j'ai un projet étudiant où je dois programmer un "media center" (enfin de quoi lire de la musique, des vidéos et visionner des photos) en utilisant les nouveautés de HTML5.
    C'est un truc qui tournera uniquement en local.
    Pour la musique, je veux pouvoir lire des chansons n'importe où sur le disque dur, le problème c'est qu'en HTML (et donc avec la balise audio) je n'ai pas accès à tout le disque dur. Comme php le peut, j'avais pensé copier la chanson que l'on souhaite lire dans un répertoire temporaire accessible au code HTML, qui serait vidé à la fin de la lecture.
    Le bout de code que j'ai montré c'est juste un test, j'essaye de trouver une solution sur un exemple simple pour ensuite l'appliquer au projet.

    J'ai testé ce que tu as proposé.
    Au premier chargement (ou plutôt lorsque le fichier n'est pas encore dans le répertoire), pareil que précédemment (balise audio avec boutons grisés, mais en allant voir dans le répertoire le fichier a bien été copié).
    Au deuxième chargement de la page (lorsque le fichier est déjà présent dans le répertoire), ça fonctionne. Même si comme avec le sleep, je ne comprends pas vraiment pourquoi ^^

  6. #6
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    D'après moi tu devrais avoir tes fichiers médias directement dans le site web, et non pas en dehors. Il faut imaginer que ton application ne serait pas forcément sur ton ordinateur.

    Les fichiers audio / vidéo ca pèse lourd, les copier puis les supprimer à chaque lecture d'une page par un internaute ca rend ton application très instable et non viable (ce qui pourrait être sujet à des critiques par tes profs).

    Tu pourrais prévoir une partie admin où télécharger les fichiers, avec un outil simple à installer comme Plupload. Au pire n'en met que quelque uns pour la démo.

Discussions similaires

  1. [Débutant] Temps d'éxecution d'une fonction
    Par zakimadrid dans le forum MATLAB
    Réponses: 2
    Dernier message: 12/05/2015, 00h44
  2. Temps maximal d'éxecution d'une fonction
    Par rambc dans le forum Général Python
    Réponses: 7
    Dernier message: 28/10/2012, 13h44
  3. La fonction copy.
    Par nicocsgamer dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 22/04/2009, 14h32
  4. calcul temps d'éxecution d'une fonction
    Par psycho_xn dans le forum C
    Réponses: 8
    Dernier message: 02/02/2008, 20h31
  5. Réponses: 16
    Dernier message: 21/02/2005, 18h20

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