Bonjour à tous,
Je rencontre un problème qui me fait m'arracher les cheveux:
J'ai fais un script de compression de vidéo en CLI via ffmpeg.
Pour garder une trace du process en cours je veux créer un fichier log dans lequel je stock le pourcentage de progression.
En version simplifié, cela ressemble à ça:
le fichier qui appelle le CLI
monscript.php avec toutes mes fonctions d'encodage:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $variable1="des infos a envoyer au script cli"; $logfile = tempnam("/var/www/vhosts/mon/chemin/vers/le/temp/", "_log"); $command = "/usr/bin/php -f /var/www/vhosts/mon/chemin/vers/le/script/monscript.php" . base64_encode($variable1) . " " . base64_encode($logfile) . " > /dev/null 2>&1 &"; exec($command);
Les problèmes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 if (isset($argc)) { $variable1 = base64_decode($argv[1]); $logfile = base64_decode($argv[2]); file_put_contents($logfile,$variable1 ."-".$logfile); /* et ici le reste de mon script...*/ exit(); }
Quand j'exécute
dans le premier script, il m'écrit une centaine de fichiers logs différents au lieu d'un seul ! Alors qu'a priori j'exécute la commande une seule fois ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part exec($command);
Ensuite le script appelé "monscript.php" ne met à jour aucun des logs écrit, ce qui me donne l'impression que le test rate au moment duEst-ce que vous voyez un problème de syntaxe dans ces quelques lignes ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part if (isset($argc))
D'avance merci !
Rintrah.
Partager