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 :

Utilisation de la commande shell_exec


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur avant-vente
    Inscrit en
    Septembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur avant-vente

    Informations forums :
    Inscription : Septembre 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Utilisation de la commande shell_exec
    Bonjour

    j'essaie de pouvoir afficher texte et image tout en lancant une commande shell_exec qui me permet de transcoder des video avec FFMPEG

    Malheureusement , ou que je place la commande shell exec , rien ne s affiche , il lance direct la commande ce qui me bloque le navigateur tout le temps que prends le transcodage de la video... ( petit sablier et ecran blanc )

    dans l ideal j aurais voulu avoir une barre de progression mais pas reussi non plus à defaut je me contenterais d un gif anime

    avant cette page j ai une autre qui affiche la liste des video à transcoder et un bouton qui appel cette page

    j ai tenter aussi avec & à la fin de lancer en tache de fond ma commande mais ca marche pas , mon serveur php est sous windows et pas linux

    Merci pour votre aide , je m 'en sors pas

    voici mon code :
    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <title>Players </title>
    <meta charset="UTF-8">
    <link href="css/style.css" rel="stylesheet" media="all" type="text/css">
    </head>
     
    <body>
     
        <div id="etape">
        <div id="moncadre">
     
        <h1>TRANSCODAGE DES FICHIERS EN COURS</h1>
        <br>
        <br>
        <div> <img src="img/barre.gif"/></div>
     
        <h4>Merci de Patienter......</h4>
     
     
     
     
        </div>
        </div>  
     
    </body>
     
    <?php
     
     
    ffmpegcodage($_COOKIE['dossierSource']);
     
    function ffmpegcodage ($dirSource){
     
    //test présence ffmpeg
    $filename = FFMPEG;
     
    if (file_exists($filename)) {
        echo "";
    } else {
        echo "Le fichier $filename n'existe pas.";
    }
     
    $dossier =DOSSIER_DESTINATION;
    $destination=$dirSource.$dossier."/";
     
    // lancement ffmpeg avec les paramètres de config.php
     $files = glob($dirSource.'/*.wmv');
     
    $nb    = count($files);
    $today = date("d_m_Y_H_i_s"); // date du jours à insérer dans le nom des fichiers de sortie
    $n = rand(0,100000);
    $compteur=0;
     
     
    foreach ($files as $f){
     
        $compteur++;
     
     // echo " " . FFMPEG . ffmpegparam . $f.$destination . $today . $n .$compteur .".ts" . " & "; // pour tester la commande
     //echo $f;
     
      $codage = shell_exec (" " . FFMPEG . ffmpegparam .$f . paramFFmpeg. $destination . $today.$n .$compteur .".ts"." &"  );
     
     }
     
     return ;
    }
     
     
    $dirSource= $_COOKIE['dossierSource'];
    $source2=$dirSource."/";
     
     
     
    if($dossier = opendir($source2))
    {
        while(false !== ($fichier = readdir($dossier)))
        {
            // Ajouter dans la boucle if les fichiers a ne pas prendre en compte
            if( $fichier != '.' && $fichier != '..' && $fichier != 'index.php' && preg_match('#\.(wmv)$#i', $fichier))
            {
     
     
                                 unlink( $source2.$fichier);
     
            }
        }}// On ferme le if (qui permet de ne pas afficher index.php, etc.)
     
      header('Location: concat.php');  // A mettre en commentaire pour tester ffmpegEncoding.inc.php //
     
    ?>

  2. #2
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Salut,

    Le mieux serait que tu utilises Ajax (javascript) pour réaliser une requête HTTP asynchrone depuis ta page d'affichage principale.

    Ta page principale affiche la barre de progression (plus ou moins factice) et exécute une requête HTTP asynchrone vers un script PHP qui fera les traitements.
    Lorsque le script PHP aura fini, la réponse à la requête asynchrone sera reçu, ton script Ajax sera en mesure d'afficher une barre de progression à 100%.

    Jette un coup d'oeil ici : http://www.w3schools.com/ajax/ajax_x...quest_send.asp , en particulier la section "Async=true"

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur avant-vente
    Inscrit en
    Septembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur avant-vente

    Informations forums :
    Inscription : Septembre 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci

    je debute en php , et je connais pas du tout javascript , j ai regarde pas l 'air simple , mais ce matin vais tenter de faire comme tu me dis

    merci pour le conseil

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur avant-vente
    Inscrit en
    Septembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur avant-vente

    Informations forums :
    Inscription : Septembre 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour

    j avance toujours pas

    j ai voulu contourner mon probleme je m explique

    j ai une 1ere page qui suite à un bouton lance un script java pour ouvir un nouvel onglet qui m 'affiche transcodage en cours et apres j ouvre ma page de transcode qui lance le shell exec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     <script language="javascript">
        <!-- Début
     
     function ouvrirLien () {
     
     var link = "http://localhost/transcode.php"; 
    var fc=open(link,"_blank");
     
     
      window.location.href="ffmpegEncoding.inc.php" }
     
        // Fin -->
        </script>
    donc la j ai ma page principal avec mon sablier , et un onglet avec Transcodage en cours !

    mon probleme est que une fois le script ffmpegEncoding.inc.php fini il pointe vers la page concat.php

    dans celle ci j essaie de ferme mon onglet mais il ne le ferme pas
    apparement c est du au fait que c est pas la page d avant qui la ouverte (ffmpegEncoding.inc.php) mais ma 1ere page

    y a t il un moyen de la fermer ?

    merci

Discussions similaires

  1. [VB]Probleme d'utilisation de la commande MSCOM
    Par Tyrael62 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 26/01/2006, 14h00
  2. Retour d'erreur avec l'utilisation de la commande For en VBS
    Par genialk2000 dans le forum VBScript
    Réponses: 3
    Dernier message: 30/03/2005, 18h45
  3. Problème avec l'utilisation de la commande system awk
    Par vbcasimir dans le forum Linux
    Réponses: 3
    Dernier message: 05/10/2004, 16h18
  4. Récupérer un fichier suite à l'utilisation de la commande rm
    Par Kimael dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 02/10/2004, 18h34
  5. [TP][Graphique]Utilisation de la commande Setviewpost
    Par repairman dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 09/07/2003, 13h26

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