J'ai cette ligne de code pour exécuter une tâche de fond (convertir plusieurs fichiers PNG au format JPG)Comment 'sortir' d'un script PHP appelé par exec ou shell_exec?
exec("nohup path/to/php path/to/convertToJpg.php >> path/to/convert_to_jpg.log > /dev/null &");
Maintenant, je suis en train d'écrire le script convertToJpg.php
et je ne peux pas comprendre comment des informations de sortie à partir de là pour qu'il sera connecté dans le convert_to_jpg.log
. Lorsque j'essaie de google tout ce que je viens avec est de savoir comment appeler un script php de exec
ou shell_exec
, puisque les mots utilisés pour décrire les deux situations est presque la même.
Pour clarification
Un devis supplémentaire obtenu dans mon code lors de la copie vers SO il. Je l'ai réparé. Dans mon code d'origine le convertToJpg.php
est appelé comme prévu, confirmé par error_logs
placé à l'intérieur pour vérifier.
Quelques réponses ont pointé vers l'argument $output
dans exec()
. Si je comprends bien, cela vainc totalement le but de la redirection de shell en utilisant le >> path/to/convert_to_jpg.log
.
Ma question est comment obtenir la sortie de la commande exec()
, mais quel code dois-je utiliser pour réellement sortie (verbe) du convert_to_jpg.log
précisions
Si je appelez
exec("nohup path/to/php path/to/convertToJpg.php >> path/to/convert_to_jpg.log > /dev/null &");
ou
$results = shell_exec("path/to/php path/to/convertToJpg.php > /dev/null");
echo $results;
ou
$results = "";
exec("path/to/php path/to/convertToJpg.php > /dev/null", $results);
print_r($results);
Peu importe lequel.
Voici convertToJpg.php
<?php
echo "Will this be in $results?"; // No, this did not end up in results.
error_log("error logs are being logged, so I know that this php file is being called");
//I have tested echo, but that does not work.
//What php function do I use so that a string will be captured in the $output of an exec() call?
?>
étant donné que php totalement invalide, il ne fonctionnera pas du tout en premier lieu ... –
Qu'est-ce qui est invalide php? le mien ou le commentateur précédent qui a apparemment supprimé son commentaire? –
vous avez édité le supplément '' 'dans l'appel de exec() ... –